jquery 我如何保存和提取一个json对象作为一个字符串内的json从PHP到Javascript?

xbp102n0  于 2022-12-12  发布在  jQuery
关注(0)|答案(2)|浏览(113)

我正在尝试将一个编码为json的字符串保存到另一个json字符串中。
特别是,我必须能够处理空对象:“{}".
PHP程式码:

$sVal = "{}";
$jsonString  = "{\"Var2\":\"My first var\", \"Var2\":\"My second var\", \"MyBlankObject\":\"{}\"}"

...

Javascript语言:

var oMyJSON = JSON.parse('< ?= $jsonString;? >');

我收到一个JSON解析错误,指出找到了一个意外的{
我可以在Chrome的调试器中看到代码。
在客户端(javascript)代码中,括号被简单地删除,对象被替换为单词null。这不是有效的JSON。

,"Properties":null,

这会导致javascript崩溃。
如果我尝试在服务器端(PHP)对它进行json_encode,我会在括号的两边得到双引号。

,"Properties":""{}"",

如果加上双引号,我会得到同样的结果:“"{}””
当然,这也会导致javascript崩溃。
在客户端中并且JSON对象保持不变后,我需要能够提取属性中保存的'string':MyBlankObject,然后将JSON解码为单独JSON对象。
我所尝试的一切都失败了。我该如何完成这件事呢?

s6fujrry

s6fujrry1#

您可以使用PHP表示法定义对象,并让json_encode为您编码。

$phpArray = [
    'Var2' => 'My first var',
    'Var2' => 'My second var',
    'MyBlankObject' => new \stdClass
];

然后在JavaScript中:

var oMyJSON = JSON.parse('<?= json_encode($phpArray); ?>');
ctehm74n

ctehm74n2#

我想出来了
(“"",“\"",jsnVal));

相关问题