2014-09-29 71 views
-1

這是JavaScript對象還是JSON?JavaScript對象或JSON

var j = { 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
}; 

如果它是一個JSON,我該如何使它成爲一個JavaScript對象。如果它是一個JavaScript對象,我該如何使它成爲JSON?

+0

嗯...這是兩個:) – antyrat 2014-09-29 10:28:48

+0

@antyrat這是不正確的。 – 2014-09-29 10:29:51

+0

如果它的一個對象使用JSON.stringify,或者如果它的JSON字符串使用JSON.parse – 2014-09-29 10:30:08

回答

1

這是一個Javascript對象,特別是分配給變量的對象字面值。

的JSON格式是表示對象的文本:

{ 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
} 

可以具有JSON作爲Javascript代碼的字符串,例如:

var json = '{"countries": {"country": [{"cname": "Japan","capital": "Tokyo"},{"cname": "India","capital": "Delhi"}]}}'; 

要打開包含字符串JSON到一個Javascript對象,你會解析它。該JSON對象可在最新的瀏覽器,在這裏你可以使用parse方法:

var j = JSON.parse(json); 

要打開JavaScript對象到JSON,您可以使用stringify方法:

var json = JSON.stringify(j); 

JSON格式是構建爲Javascript語法的子集,以便您可以使用當時瀏覽器中可用的eval方法輕鬆解析它。由於eval方法會將該字符串作爲代碼執行,這可能會導致跨腳本攻擊,所以您應該使用一種方法來解析字符串,而不是在可能的情況下對其進行評估。

+0

好吧,讓我知道這是正確的。如果我要使用最初發布的代碼,我會將其稱爲JavaScript對象。但如果我刪除變量「var j =」,它是有效的JSON? – CuriousDev 2014-09-29 10:47:28

+0

@ user1089173這是正確的。 – 2014-09-29 10:48:08

+0

@ user1089173:是的,任何JSON文本都可以用作Javascript代碼。區別主要在於如何使用它,而不是語法(除了JSON格式是Javascript語法的一個子集)。 – Guffa 2014-09-29 10:48:30

5

這是一個JavaScript對象。 JSON是一種數據序列化格式。

更確切地說 - 這是一個變量賦值,您可以將JavaScript對象文字分配給名爲j的變量。有關差異的更多信息,請參閱標記

是蠱惑人心的某些位:

  • JSON是轉移數據從一種語言到另一種方式,它是鬆散的基礎上的JS對象的文字符號。
  • JSON是一種文本格式,就像"var x = 3;"是js裏面的JS字符串"null"是JS裏面的JSON字符串。你可以使用JSON.parseJSON.stringify來序列化/解析它。
0

如果一個文件/字符串包含下面的文字,它是JSON

{ 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
} 

如果執行下面的JavaScript,變量j的價值將是一個JavaScript對象,它有一個屬性countries

var j = { 
    "countries": { 
     "country": [{ 
      "cname": "Japan", 
      "capital": "Tokyo"      
     }, 
     { 
      "cname": "India", 
      "capital": "Delhi" 
     }] 
    } 
}; 

JSON是一種數據交換格式。它是獨立於語言的。基於JavaScript的對象字面符號的基於,但是JSON is absolutely not JavaScript or a subset of it


您可以使用JSON.stringify()將JavaScript對象轉換爲JSON。您可以使用JSON.parse()將JSON對象轉換爲JavaScript對象。