2013-03-12 66 views
6

如何使用javascript創建以下類型的json數組?如何使用javascript創建以下類型的json數組?

xAxis: { 
    categories: [ 
     'Jan', 
     'Feb', 
     'Mar', 
     'Apr', 
     'May', 
     'Jun', 
     'Jul', 
     'Aug', 
     'Sep', 
     'Oct', 
     'Nov', 
     'Dec' 
    ] 
} 
+0

這看起來更像是一個JavaScript數組,因爲值是用單引號引起來的。有[關於數組的介紹]的[一對](http://eloquentjavascript.net/chapter4.html)(https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Predefined_Core_Objects#Array_Object)在那裏,以及如何將JavaScript數據類型轉換爲JSON在這裏介紹:http://stackoverflow.com/questions/4162749/convert-js-object-to-json-string。 – 2013-03-12 08:36:45

+0

這已經是JavaScript中的JSON數組。 – 2013-03-12 08:38:45

+2

@ mustafa.0x:不,它不是。它是JavaScript中的一個* JavaScript *數組。 – 2013-03-12 08:40:30

回答

12

好了,你有兩個選擇:

  1. 創建數組,然後它字符串化:

    var categories = [ 
          'Jan', 
          'Feb', 
          'Mar', 
          'Apr', 
          'May', 
          'Jun', 
          'Jul', 
          'Aug', 
          'Sep', 
          'Oct', 
          'Nov', 
          'Dec' 
         ]; 
    var json = JSON.stringify(categories); 
    

    JSON.stringify存在於最現代的瀏覽器,你可以墊片它。 (有幾個墊片可用,並非最不重要的從Crockford's github page - 克羅克福德是誰定義的JSON的人。)

  2. 或者只是直接創建JSON字符串:

    var json = '["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]'; 
    

回覆您編輯:這不再是一個「數組」,它是一個帶有數組的對象(或者一個對象,其中有一個對象,其中有一個數組,即)。它不fundmentally改變答案,但:

var xAxis = { categories: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] }; 
var json = JSON.stringify(xAxis); 

var json = '{"categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}'; 

我不知道你是否在那裏想要的xAxis層。如果是這樣,它是圍繞上述只是一個層,例如:

var obj = { xAxis: { categories: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] } }; 
var json = JSON.stringify(obj); 

var json = '{"xAxis": {"categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}}'; 

更多關於JSON上the JSON home page。基本上,所有字符串都必須是雙引號(而不是單引號),並且所有屬性名稱都必須用雙引號引起來。

相關問題