如何将JSON对象作为新级别添加到另一个JSON对象中?

9
我有一段代码可以获取两个JSON对象的结尾集合,大概像这样。
var jsonL1 = {"holder1": {}}
var jsonL2 = {"section":"0 6","date":"11/12/13"}

我希望将 jsonL2 插入到 jsonL1.holder1 中,并将它们合并成一个 JSON 对象。
期望输出:
{
    "holder1": {
        "section": "0 6",
        "date": "11/12/13"
    }
}

我该怎么做?


2
那不是JSON。那是JavaScript对象字面量。 - user113716
只要您不添加除字符串、数组、数字、哈希和 null 以外的对象,它们不是可以互换使用吗?@patrick dw - user142019
1
@Radek S:不是的。JSON是一种数据交换格式,恰好是JavaScript对象字面符号的子集。JSON是语言无关的。这可能不是最好的类比,但考虑XML:XML也可以用作数据交换格式。通常它会被转换为DOM。因此,DOM可以用来表示XML文档。JSON和JavaScript中的对象也是如此。唯一的区别是JSON可以“自然地”转换为JavaScript对象。 - Felix Kling
@Felix是正确的。JSON数据是遵循JSON规范的一串字符。 - user113716
2个回答

7

这很简单:

L1.holder1 = L2

我已将变量名称中的“json”删除,正如@patrick所说,您处理的不是“JSON对象”,而是对象字面量。
另请参阅:没有JSON对象 您也可能想了解更多关于JavaScript对象的知识。

4
如果您想让第一个对象引用第二个对象,请按照以下步骤操作:
jsonL1.holder1 = jsonL2;

如果您想要第一个副本中的第二个,那就不同了。因此,这取决于您对将其合并为一个对象的含义。使用上面的代码,对jsonL2的更改将在jsonL1.holder中可见,因为它们实际上只是引用同一对象。有点跑题,但为了更形象地描述JSON数据和JavaScript对象之间的区别:
    // this is a javascript object
var obj = {"section":"0 6","date":"11/12/13"};

    // this is valid JSON data
var jsn = '{"section":"0 6","date":"11/12/13"}';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接