如何在PHP中将JavaScript文字对象转换为Json对象

时间:2013-09-19 15:08:03

标签: javascript php json converter object-literal

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

4 个答案:

答案 0 :(得分:1)

<强> 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

答案 1 :(得分:1)

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

1)使用作曲家安装

composer require ovidigital/js-object-to-json

2)在项目内部使用

$json = \OviDigital\JsObjectToJson\JsConverter::convertToJson($javascriptObjectString);

答案 2 :(得分:0)

如果您很幸运地知道密钥到达脚本时将是什么,并且知道它们不会出现在值中,则可以使用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);

希望这对某人有帮助。

答案 3 :(得分:-2)

不是json_encode,请使用$var = json_decode($_POST['names'], true)。然后,您可以像echo $var['surname']一样使用它来回应“华盛顿”。