2015-09-19 127 views
0

我在json數組中存儲json對象並將其分配給另一個主json對象,但是當我打印主json對象的值時,它顯示1.下面是代碼。json對象顯示值1

var jsonMainObject= {}; 
var jsonArray= []; 

for(var j=0;j<cu.receivedData.length;j++) { 
jsonMainObject["company"] = jsonArray.push(cu.receivedData[j].company); 
} 

console.log(jsonMainObject) 

下面是輸出

{ company: 1 } 

但它應該顯示陣列。當我打印jsonArray它顯示對象的數組,但是當我控制jsonMainObject的輸出時,它顯示上面的輸出。

+0

您需要提供更多的代碼/環境。 'cu.receivedData'變量是什麼樣的。那麼'jsonArray'變量呢? – DesignerGuy

+0

另外,JSON只是表示javascript對象的一種格式。所以,沒有像「JSON對象」本身那樣的東西。在javascript中有對象,而在JSON中表示的JavaScript對象(最終只是一個字符串)。 – DesignerGuy

回答

2

push方法返回數組的新長度。見documentation。我猜你應該使用:

jsonMainObject["company"].push(valueToPush) 

或使用concatdocumentation

jsonMainObject["company"] = jsonMainObject["company"].concat(valueToConcat) 
+0

這不是'jsonMainObject'是一個對象,因爲它似乎你想推到'jsonMainObject [「company」]',這可以寫'jsonMainObject.company'。你可能需要初始化數組:'jsonMainObject.company = [];' –

+0

好吧,我明白了,我會盡力回覆你。謝謝 –

+0

感謝Michael通過初始化它的作品。 jsonMainObject [「company」] = []; –

1

沒有JSON的一切都在這裏。 JSON是用於表示數據的文本格式。你有什麼是一個帶JavaScript數組的JavaScript對象。

您試圖在將數組放入數組的同時將數組放入對象中。 push method不返回它被調用的數組,它返回數組的長度。 company屬性將最終包含receivedData數組的長度。

你可以把數組中的對象從開始:

var arr = []; 
var mainObject = { company: arr }; 

for(var j = 0; j < cu.receivedData.length; j++) { 
    arr.push(cu.receivedData[j].company); 
} 

console.log(mainObject);