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

how to convert a JavaScript literal object into Json object in PHP

本文关键字:对象 转换 Json 文字 JavaScript PHP 中将      更新时间:2023-09-26

我有一个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 = 'OviDigital'JsObjectToJson'JsConverter::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']一样使用它来呼应"华盛顿"。