我有一个JS文字对象字符串,例如{name:{first:"George",middle:"William"},surname:"Washington"}
,我必须用Json转换它。如何使用 PHP 来做到这一点?
如果有人仍在寻找一个简单的解决方案,就像我最近所做的那样,你可以看看我写的PHP库:ovidigital/js-object-to-json
1) 与作曲家一起安装
composer require ovidigital/js-object-to-json
2)在您的项目中使用它
$json = OviDigitalJsObjectToJsonJsConverter::convertToJson($javascriptObjectString);
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
如果你足够幸运地知道当键到达脚本时它们会是什么,并且你知道它们不会出现在值中,你可以使用 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);
远非完美,但希望这对某人有所帮助。
不json_encode,使用 $var = json_decode($_POST['names'], true)
。然后,您可以像echo $var['surname']
一样使用它来呼应"华盛顿"。