繁体   English   中英

将数据附加到JSON数组问题

[英]Append data to JSON array issue

我在下面的代码中遇到问题,试图将数据推送到具有数组的JSON结构中。 在以下代码中,“ M”是可以添加到的数组,x是整数值。 我正在尝试使用推入将多个条目放入数组“ P”,但是出现以下错误:

未捕获的TypeError:无法读取未定义的属性“推”

var x = 3;
var title = "A Title"
var JSON_local_dat = {"M":[{"T":title, "P":[]}]};

for(var i=0; i < x; i++)
{
    var d = {"Something": 50};
    JSON_local_dat.M.P.push(d);
    console.log(JSON.stringify(JSON_local_dat.M.P));
}

我也试过删除双引号,但出现相同的错误。 如果我改为尝试将数据推入“ M”,则表示成功,但未成功。 无法看到为什么我不应该对P进行同样的操作,这就是我要去的数据。

(顺便说一句,由于空间有限,我使用单个字母作为名称,我用来将数据传递到的API将我限制为4000个字符。)

M是一个数组 使用M[0]获取数组中的第一个条目,该条目恰好是具有属性P的对象。

 x = 3; var JSON_local_dat = {"M":[{"T":"title", "P":[]}]}; for(var i=0; i < x; i++) { var d = {"Something": 50}; JSON_local_dat.M[0].P.push(d); console.log(JSON.stringify(JSON_local_dat.M[0].P)); } 

PM数组中第一个对象的属性,而不是M本身的属性。 您需要选择数组的第一项才能到达对象(而不是数组本身)才能访问P

 var x = 3; var title = "A Title" var JSON_local_dat = {"M":[{"T":title, "P":[]}]}; for(var i=0; i < x; i++) { var d = {"Something": 50}; JSON_local_dat.M[0].P.push(d); } console.log(JSON.stringify(JSON_local_dat.M)); 

如果想提高效率,可以只选择一次P数组,而不是每次迭代都选择一次:

 var x = 3; var title = "A Title" var P = []; var JSON_local_dat = {"M":[{"T":title, P}]}; for(var i=0; i < x; i++) { var d = {"Something": 50}; P.push(d); } console.log(JSON.stringify(JSON_local_dat.M)); 

此外,您那里没有JSON-您只有一个普通的Javascript对象。 请参见没有“ JSON对象”之类的东西

您的json(JSON_local_dat)并不是您想要的方式。 您将M设为一个数组(其第一个元素具有P属性)。 改成 -

var JSON_local_dat = {"M":{"T":title, "P":[]}};

要修复您的代码,请使用M[0]因为它是一个数组。

JSON_local_dat.M[0].P.push(d);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM