javascript - 动态创建嵌套的 JSON 对象

标签 javascript jquery asp.net-mvc-3

(上下文)我从一堆元素中获取信息,这些信息正在收集到一个 JSON 对象中,然后传递到 MVC3 Controller ,在那里它被反序列化为一个对象。

有“项目”和“项目设置”。目前,我的项目和项目设置都在平面 JSON 对象中。理想情况下,我希望将项目设置嵌套在每个项目下。我的代码目前看起来像这样:

 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")
              });


                });


 });

在 $(".settingInput").each 函数下是添加设置的地方。我尝试过类似“editedItems.settings.push..”的语法,但它返回语法错误。

如有任何帮助,我们将不胜感激!

最佳答案

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
        });
    });

    ...
});

将生成示例输出:

var editeditems = 
[
    {
        "itemname": "item1",
        "settings": [
            {
                "settingkey": "key1",
                "settingvalue": "value1"
            },
            {
                "settingkey": "key2",
                "settingvalue": "value2"
            }
        ]
    },
    {
        "itemname": "item2",
        "settings": [
            {
                "settingkey": "key1",
                "settingvalue": "value3"
            },
            {
                "settingkey": "key2",
                "settingvalue": "value4"
            }
        ]
    }
];

关于javascript - 动态创建嵌套的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485014/

相关文章:

javascript - 使用jquery,如何制作一个可以立即重新启动并可见地倒计时的计时器?

javascript - 使用 NaN 作为函数结果而不是必要的整数的问题

asp.net-mvc - 应用程序排队/网站流量管理

javascript - 单击后如何随机化图像?

asp.net-mvc - 改变 : * incorrectly added to http header response (asp. 净 mvc3)

asp.net-mvc - 了解 MVC 模型

javascript - 无法读取 InnerHTML 和 div id 的属性长度

javascript - Cesium:选择实体并检索 WMS 的信息

javascript - 循环接收到的 json 字符串以通过 jquery 获取值

javascript - 访问数据表中另一列中的数据