【问题标题】:Add multiple levels deep JSON easily轻松添加多级深度 JSON
【发布时间】:2013-03-19 18:37:28
【问题描述】:

我正在创建一个 json 来解释创建对话框。

我最初的尝试是这样的:

var dialog = {};
dialog.warning.nextEle["key"] = "value";

希望它只会生成“警告”和“nextEle”。我可以这样做:

dialogMsg["warning"] = {"nextEle" : {"key" : "value"}};

但我想要的是能够使其添加到 dialog.warning.nextEle 如果它已经存在,如果它不存在则添加该深度......即:

{} 将变为

{ "warning" : { "nextEle" : { "key" : "value"}}}

使用相同的格式,我可以添加来制作它

{ "warning" : { "nextEle" : { "key" : "value", "key2" : "value2"}}}

是否可以在不使用条件的情况下做到这一点?

【问题讨论】:

  • 你使用什么语言?
  • 所以我想你可以做一个函数来接收字典和一个键。该函数执行 dialog[key] =passed_dict。这样你就可以多次调用它来嵌套你的循环。这是一个我认为可能对您有用的答案。 stackoverflow.com/questions/3559070/…
  • 抱歉,我在里面找不到我要找的东西。

标签: javascript json


【解决方案1】:

如果你使用jQuery,利用extend函数,它会自动添加必要的组件。

$.extend(true, dialog,{ 
    "warning" : { 
        "nextEle" : { 
            "key" : "value"
        }
    }
});

【讨论】:

  • 嘿,马特,这实际上似乎是在覆盖警告/nextEle 中的现有内容(而不是在已经存在的情况下添加它):jsfiddle.net/pborreli/pJgyu
  • @smerny 啊,你是对的,我把true 作为第一个参数省略了。这使得它递归扩展,因此它不会再替换。我也添加了函数文档的链接,它可以非常强大
猜你喜欢
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多