2015-09-19 131 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);