创建一个嵌套的JSON对象动态 [英] Create a nested JSON object dynamically

查看:116
本文介绍了创建一个嵌套的JSON对象动态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

(上下文)我从一堆我正在收集成随后被传递到一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆