簡體   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