0

我在这里遇到了 Facebook JS SDK 的一些问题, http: //facebook.stackoverflow.com/questions/10243785/fb-ui-call-throws-json-parsing-error-serializing-then-deserializing-input-ob,但我在这里把它当作一个更通用的 JSON 问题。

如果我要将以下 javascript 值序列化为 JSON 字符串,是否有任何情况或任何解析器会以不同方式对待它们?如果有任何解析器无法对 b 版本进行字符串化,我会特别感兴趣。

var value = {"value":"one"};
var a = {"data1":{"value":"one"},"data2":{"value":"one"}};
var b = {"data1":value,"data2":value};
4

2 回答 2

1

Afaik:现代浏览器的默认 JSON 解析器正在“字符串化” b 示例正确,因此对的引用也value被字符串化。

console.log('a: '+JSON.stringify(a));
console.log('b: '+JSON.stringify(b));
/* all browsers I know (for IE restriction is IE>7) show
a: {"data1":{"value":"one"},"data2":{"value":"one"}} 
b: {"data1":{"value":"one"},"data2":{"value":"one"}}
*/
于 2012-04-20T10:00:25.333 回答
1

根据我的经验,JSON 解析器不会因您的任何示例而失败。
JSON 解析器的主要威胁是循环引用,例如:

var object = {};
object.value = object;

你似乎没有。

于 2012-04-20T10:04:26.287 回答