2014-02-06 97 views

回答

2

你創建一個數組,並使用它,如果它是一個JSON對象。如果你需要一個對象,你應該創建一個對象。

+1

你剛剛建議他命名一個對象arr。 downvote只是讓他更加困惑。 –

+0

沒錯。糾正。 – Stilltorik

2

如果你想在JavaScript中使用命名的鍵,你應該因爲JSON序列化程序忽略數組中的任何指定鍵,所以使用object。一條經驗法則是,你應該使用數組爲[0][1]等,但對於['foo']對象,['bar']

var obj = { 
    'do': 'smth', 
    'asd': { 
     'dsa': 'alo' 
    } 
}; 

console.log(JSON.stringify(obj)); 
//{"do":"smth","asd":{"dsa":"alo"}} 
+0

您的意思是有名的鍵不存在數組? –

+2

鍵* do *存在,但它們被JSON序列化程序忽略。 – Pointy

+0

@Pointy你是對的 - 我改變了我的描述了一下。看起來,Chrome自己的控制檯甚至不能輸出變量權限(運行OP的代碼類型爲「arr」,而你什麼也沒有得到,但是'console.log(arr)')。 – h2ooooooo

0

您不能給出數組名稱中的元素,他們將它們的指示符作爲名稱。所以,如果你想給他們的名字使用JS-對象,否則使用indizies的定義如下:

arr[0]='smth'; 
arr[1]=[]; 
arr[1][0]='alo'; 
0

記住,JSON代表JavaScript對象符號,你應該有所需的性能對象,而不是你正在創建一個數組,以便與{更換你的陣列},並加入到這個

1

使用對象:

var object = {}; 
object['do']='smth'; 
object['asd']=[]; 
object['asd']['dsa']='alo'; 
var string=JSON.stringify(object) 
console.log(object); 
console.log(string);