16

我有一个 JS 文字对象字符串,例如{name:{first:"George",middle:"William"},surname:"Washington"},我必须将它转换为 Json。我怎样才能使用 PHP 做到这一点?

4

4 回答 4

3

JS:

// Pretend we're POSTing this
var foo = {foo:{first:"George",middle:"William"}};

PHP:

$foo = $_POST['foo'];
$foo = json_decode( stripslashes( $foo ) );
echo $foo->first;

信用到期:https ://www.youtube.com/watch?v=pORFYsgOXog

于 2015-12-02T02:09:01.230 回答
2

如果有人仍在寻找一个简单的解决方案,就像我最近所做的那样,您可以查看我编写的 PHP 库:ovidigital/js-object-to-json

1)用作曲家安装

composer require ovidigital/js-object-to-json

2)在你的项目中使用它

$json = \OviDigital\JsObjectToJson\JsConverter::convertToJson($javascriptObjectString);
于 2020-04-23T11:43:28.777 回答
-1

如果您足够幸运地知道当它们到达您的脚本时键是什么,并且您知道它们不会出现在值中,您可以str_replace()通过在键中添加双引号来做到这一点:

$notQuiteJson = '{name:{first:"George",middle:"William"},surname:"Washington"}';

$initialJson = array('name:','first:','middle:','surname:');

$replacedJson = array('"name":','"first":','"middle":','"surname":');

$convertedDataString = str_replace($initialJson, $replacedJson, $notQuiteJson);

$actualJson = json_decode($convertedDataString);

远非完美,但希望这可以帮助某人。

于 2019-10-16T09:05:51.780 回答
-3

不是 json_encode,使用$var = json_decode($_POST['names'], true). 然后你可以用它echo $var['surname']来呼应“华盛顿”。

于 2013-09-19T15:12:14.790 回答