var foo = { "a": 1, "b": true, c: [1, true, "2"] };
請糾正我,如果我在這裏錯了,但據我所知,這是一個有效的json對象。但它也是一個JavaScript對象。JSON和JavaScript對象
是基於JavaScript語言的JSON對象嗎?或者是周圍的其他方式?
感謝
基於JavaScript語言var foo = { "a": 1, "b": true, c: [1, true, "2"] };
請糾正我,如果我在這裏錯了,但據我所知,這是一個有效的json對象。但它也是一個JavaScript對象。JSON和JavaScript對象
是基於JavaScript語言的JSON對象嗎?或者是周圍的其他方式?
感謝
基於JavaScript語言「請糾正我,如果我錯了這裏,但據我所知,這是一個有效的JSON對象」
號
「但它也是一個JavaScript對象。」
是的。
UPDATE:我原來的答覆仍然低於,但我錯過了這是有益的@badunk
字符串
{ "a": 1, "b": true, c: [1, true, "2"] }
是JSON指出了一個重要的語法錯誤。 JSON約爲表示法 - 哪些符號構成有效語法,以及它們在處理時的含義。
您的代碼:
var foo = { "a": 1, "b": true, c: [1, true, "2"] };
..是一段JavaScript。當這個被分析和處理時,賦值右邊的部分被稱爲javascript對象文字。也就是說,一段表示文字對象的javascript。但是因爲它實際上是一個對象,所以它不再是符號 - 它被處理成運行時數據結構。
當您談論數據交換時(例如通過HTTP),術語JSON很有用。如果HTTP響應像這樣通過一個sting:
{ "a": 1, "b": true, c: [1, true, "2"] }
它是有效的JSON。 如果這將被解釋,它會導致一個javascript對象。
是JSON對象?
是的。
JavaScript對象符號(JSON)是一個輕量級的,基於文本的,與語言無關的數據交換格式。它源於ECMAScript編程語言標準。
請注意,ECMAScript是standardised version of JavaScript。
從JSON網站
JSON(JavaScript對象符號)是輕量級的數據交換格式。人類閱讀和寫作很容易。機器解析和生成很容易。它基於JavaScript編程語言的一個子集。
所以你的問題的答案是肯定的。
有人可能會爭辯說,沒有像「JSON對象」這樣的東西(http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/)。
上面的代碼實際上是一個對象字面值。另一方面,JSON只是一個對象的字符串表示,即它是一個序列化。
@Roland指出,聲明本身是一個JavaScript表達式,而不是JSON。忽略了,然而,評估是否下面是JSON:
{ "a": 1, "b": true, c: [1, true, "2"] }
我這裏的其他答案不同意,這不是有效的JSON。嚴格地說,屬性必須用引號引起來。看到SO帖子here。這是正確的JSON:
{ "a": 1, "b": true, "c": [1, true, "2"] }
而你是對的。我錯過了。 –
'JSON'表示JavaScript對象表示法。這應該可以回答你的問題,也意味着先發生了什麼。 – Imp
谷歌是你的朋友。一個簡單的指南:http://docs.1060.org/docs/3.1.0/book/discovered/doc_mod_json_guide.html – rgamber