繁体   English   中英

为什么我不能在JS中解析没有引号的JSON?

[英]why can't I parse JSON without quotes in JS?

为什么我不能解析JSON对象? 我需要将它包装在引号中以便解析工作。

// JSON object
var foo = {"sayHi": {"nl":"hoi", "en":"hello"}};
alert(foo.sayHi.en);

// string       
var foo = '{"sayHi": {"nl":"hoi", "en":"hello"}}';      
alert(JSON.parse(foo).sayHi.nl);

编辑:

// does not work
var foo = {"sayHi": {"nl":"hoi", "en":"hello"}};
alert(JSON.parse(foo).sayHi.nl);

是的,两者都有效,但第一个foo不适用于解析。 我更喜欢第一个foo,因为我不需要担心换行符,引号和加号。

EDIT2:

我真的在寻找一种将JSON存储在变量中的好方法,而不是使用ajax调用来获取它。

因为这个{"sayHi": {"nl":"hoi", "en":"hello"}}已经是js对象了

这个'{"sayHi": {"nl":"hoi", "en":"hello"}}'只是一个字符串,包含任何东西,也许是json

取决于“解析JSON对象”的意思(顺便说一句,这不是一件事; JSON是一种表示法)。 如果你想把它解析成一个对象,那么恭喜你,你已经完成了! JSON.parse使用JSON(符号)获取字符串并将其转换为JavaScript中的对象(但许多其他语言也可以解析JSON并将其转换为相应的数据结构)。

但是,您的两个代码段都按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM