我正在尝试获取如下所示的 json 对象
{
"Name":"UnitedStates",
"Info":[
{"StateName":"Washington",
"Commands":[
{"Type":"Men","Parameter":"10000"},
{"Type":"Women","Parameter":"30000"}
]},
{"StateName":"California",
"Commands":[
{"Type":"Kids","Parameter":"20000"}
]}
]}
我正在尝试以下操作 Fiddle
如何将值数组添加到现有空白对象。
var CountryName = 'UnitedStates';
var Data = {
Name: CountryName,
Info: [
commands :[]
]
}
Data.Info.push({'StateName': 'washington'});
Data.Info.commands.push(
{'Type': 'Men'},
{'Parameter': '1000'},
);
$('.displayJsonBlock').empty();
$('.displayJsonBlock').append('<pre><code>' + JSON.stringify(TemplateData) + '</pre></code>')
最佳答案
如果您查看错误控制台输出,您会发现它给出了语法错误,因为 Info
试图同时成为对象和数组:
Info: [
commands :[]
]
如果你想插入Info
,它需要是一个数组,但这意味着你不能像这样在文字中定义属性。如果你想定义这样的属性,它需要是一个像这样的对象:
Info: {
commands :[]
}
但是你无法插入。
我认为您正在寻找的是:
var CountryName = 'UnitedStates';
var Data = {
Name: CountryName,
Info: [] // info is just an array
}
Data.Info.push({
'StateName': 'washington',
commands: [] // each element of Info is an object with a commands array
});
Data.Info[0].commands.push( // you need to define which element of info. Here it's the first
{'Type': 'Men'},
{'Parameter': '1000'},
);
console.log(Data)
当然,您不需要执行两次推送,您可以推送整个对象,包括命令
:
Data.Info.push({
'StateName': 'washington',
commands: [
{'Type': 'Men'},
{'Parameter': '1000'}
]
})
关于javascript - Jquery 将值数组添加到 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51757033/