Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON解析和多层次字符串化_Javascript_Json - Fatal编程技术网

Javascript JSON解析和多层次字符串化

Javascript JSON解析和多层次字符串化,javascript,json,Javascript,Json,我有一个javascript对象,其中包含一个属性,该属性的值为另一个json字符串化对象。我无法将字符串的打印输出版本返回到对象窗体。请参阅下面的代码。json字符串的console.log输出内容与jsonFromStr的右侧完全相同。但是,JSON.parse(JSON)是可以的,而JSON.parse(jsonFromStr)是错误的。这里怎么了 jsfiddle: 对于level2ObjJson键的值,您有一个额外的“”,请用上述代码替换代码中的jsonFromStr。如果您这样做,它

我有一个javascript对象,其中包含一个属性,该属性的值为另一个json字符串化对象。我无法将字符串的打印输出版本返回到对象窗体。请参阅下面的代码。
json
字符串的
console.log
输出内容与
jsonFromStr
的右侧完全相同。但是,
JSON.parse(JSON)
是可以的,而
JSON.parse(jsonFromStr)
是错误的。这里怎么了

jsfiddle:


对于level2ObjJson键的值,您有一个额外的“”,请用上述代码替换代码中的jsonFromStr

如果您这样做,它将起作用:

jsonFromStr = '{"key1a":"bar","key1b":{"level2ObjJson":"{\\\"key2a\\\":\\\"foo\\\",\\\"key2b\\\":3}"}}';
您的版本不起作用的原因是转义序列
\“
此时已解决,因此
jsonFromStr
的实际值为:

'{"key1a":"bar","key1b":{"level2ObjJson":"{"key2a":"foo","key2b":3}"}}'
…这是无效的JSON

您需要在JSON字符串中保持这些转义未解析,这可以通过使用附加斜杠转义转义序列本身来实现

jsonFromStr = '{"key1a":"bar","key1b":{"level2ObjJson":"{\\\"key2a\\\":\\\"foo\\\",\\\"key2b\\\":3}"}}';
'{"key1a":"bar","key1b":{"level2ObjJson":"{"key2a":"foo","key2b":3}"}}'