如何将数组添加到json对象的数组中

时间:2019-10-26 12:13:15

标签: jquery arrays json push

    var tags = { 

112 :[  
{ "tag":"Shyam", picx: 700, picy: 300 },
{ "tag":"Bob", picx: 340, picy: 120 },  
{ "tag":"Jai", picx: 500, picy: 240 } 
],

114 :[  
{ "tag":"pen", picx: 300, picy: 100 },
{ "tag":"cd", picx: 440, picy: 220 },  
{ "tag":"paper", picx: 600, picy: 440 } 
] };

这是我拥有的对象数组,我想在变量标签中添加以下内容

115 :[  
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },  
{ "tag":"dave", picx: 620, picy: 430 } 
]

我尝试了

tags.push( { 
115 :[  
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },  
{ "tag":"dave", picx: 620, picy: 430 } 
] } );

但是没用

2 个答案:

答案 0 :(得分:0)

tag不是数组,但是是对象。要将数据添加到对象中,您需要添加key,然后将数据分配给key

var tags = {
    112: [
        { "tag": "Shyam", picx: 700, picy: 300 },
        { "tag": "Bob", picx: 340, picy: 120 },
        { "tag": "Jai", picx: 500, picy: 240 }
    ],

    114: [
        { "tag": "pen", picx: 300, picy: 100 },
        { "tag": "cd", picx: 440, picy: 220 },
        { "tag": "paper", picx: 600, picy: 440 }
    ]
};

并添加密钥115并分配必要的数据:

tags[115] = [
    { "tag":"bob", picx: 350, picy: 180 },
    { "tag":"tom", picx: 450, picy: 200 },
    { "tag":"dave", picx: 620, picy: 430 }
];

console.log(`my tags: `, tags)

答案 1 :(得分:-1)

在将数组对象添加到对象内部时,您犯了一个错误,而push方法用于在数组内部添加对象。 因此,首先,您必须先将Object转换为数组,然后才能在Object对象中添加数组。

var tags = { 

112 :[  
{ "tag":"Shyam", picx: 700, picy: 300 },
{ "tag":"Bob", picx: 340, picy: 120 },  
{ "tag":"Jai", picx: 500, picy: 240 } 
],

114 :[  
{ "tag":"pen", picx: 300, picy: 100 },
{ "tag":"cd", picx: 440, picy: 220 },  
{ "tag":"paper", picx: 600, picy: 440 } 
]
};
console.log(typeof(tags)); //shows object type
tags=Object.entries(tags);

tags.push({ 
115 :[  
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },  
{ "tag":"dave", picx: 620, picy: 430 } 
] } );
console.log(tags);