创建一个嵌套的JSON对象动态 [英] Create a nested JSON object dynamically
问题描述
(上下文)我从一堆我正在收集成随后被传递到一个MVC3控制器,它得到反序列化对象的JSON对象元素的信息。
有项目和项目设置。目前,我都在平坦的JSON对象这两个项目和项目设置。我非常希望让每个项目下嵌套的项目设置。我的code目前看起来是这样的:
VAR editeditems = [];
... $(#调用SaveChanges)。点击(函数(){ //这个工程并检索所有项目的ID
$(portlet中)。每个(函数(){ VAR ITEMNAME = $(本)。数据(ITEMNAME);
editeditems.push(
{
ITEMNAME:ITEMNAME
}); ITEMNAME = $(本)。数据(ITEMNAME); $(。settingInput)。每个(函数(){ editeditems.push(
{
settingkey:$(本).attr(名称),
settingvalue:$(本).attr(值)
});
});
});
根据$(。settingInput)。每一个功能就是得到补充的设置。我已经试过类似语法'editedItems.settings.push ..',但它有一个语法错误返回。
任何帮助将大大AP preciated!
VAR editeditems = [];
...$('#调用SaveChanges')。点击(函数(){
$('。portlet的')。每个(函数(){
VAR设置= [];
$('。settingInput')。每个(函数(){
settings.push({
settingkey:$(本).attr(名称),
settingvalue:$(本).attr('值')
});
}); editeditems.push({
ITEMNAME:$(本)。数据(ITEMNAME'),
设置:设置
});
}); ...
});
将产生输出示例:
VAR editeditems =
[
{
ITEMNAME:ITEM1
设置:
{
settingkey:KEY1
settingvalue:值1
},
{
settingkey:KEY2,
settingvalue:VALUE2
}
]
},
{
ITEMNAME:ITEM2
设置:
{
settingkey:KEY1
settingvalue:值3
},
{
settingkey:KEY2,
settingvalue:值4
}
]
}
];
(context)I have information from a bunch of elements that I'm collecting into a JSON object that then gets passed down to an MVC3 controller where it gets deserialized into an object.
There are 'items' and 'item settings'. Currently, I have have both items and item settings all in flat JSON object. Ideally I would like to have the item settings nested under each item. My code currently looks like this:
var editeditems=[];
...
$("#SaveChanges").click(function() {
//this works and retrieves all of the item IDs
$(".portlet").each(function() {
var itemname = $(this).data("itemname");
editeditems.push(
{
"itemname": itemname
});
itemname = $(this).data("itemname");
$(".settingInput").each(function() {
editeditems.push(
{
"settingkey":$(this).attr("name"),
"settingvalue":$(this).attr("value")
});
});
});
Under the $(".settingInput").each function is where the settings get added. I've tried syntax like 'editedItems.settings.push..' but it returns with a syntax error.
Any help would greatly be appreciated!
var editeditems = [];
...
$('#SaveChanges').click(function() {
$('.portlet').each(function() {
var settings = [];
$('.settingInput').each(function() {
settings.push({
settingkey: $(this).attr('name'),
settingvalue: $(this).attr('value')
});
});
editeditems.push({
itemname: $(this).data('itemname'),
settings: settings
});
});
...
});
will generate sample output:
var editeditems =
[
{
"itemname": "item1",
"settings": [
{
"settingkey": "key1",
"settingvalue": "value1"
},
{
"settingkey": "key2",
"settingvalue": "value2"
}
]
},
{
"itemname": "item2",
"settings": [
{
"settingkey": "key1",
"settingvalue": "value3"
},
{
"settingkey": "key2",
"settingvalue": "value4"
}
]
}
];
这篇关于创建一个嵌套的JSON对象动态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!