Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中复制JSON?_Javascript_Jquery_Json - Fatal编程技术网

如何在javascript中复制JSON?

如何在javascript中复制JSON?,javascript,jquery,json,Javascript,Jquery,Json,需要在不同层次结构级别的相同JSON中克隆JSON。下面是一个JSON示例 初始代码如下所示: { "data": { "moduleName": { "content": { "moduleName": { "property1": "Lorem Ipsum Dummy Text", "property2": ['abc', 'xyz'

需要在不同层次结构级别的相同JSON中克隆JSON。下面是一个JSON示例 初始代码如下所示:

{
    "data": {
        "moduleName": {
            "content": {
                "moduleName": {
                    "property1": "Lorem Ipsum Dummy Text",
                    "property2": ['abc', 'xyz']
                }
            },
            "property3": "300438825",
            "property4": "item"
        }
    }
}
结果应该是:

{
    "data": {
        "moduleName": {
            "content": {
                "moduleName": {
                    "property1": "Lorem Ipsum Dummy Text",
                    "property2": ['abc', 'xyz']
                }
            },
            "property1": "Lorem Ipsum Dummy Text",
            "property2": ['abc', 'xyz']
            "property3": "300438825",
            "property4": "item"
        }
    }
}

有人能为同样的问题提出一种方法/伪代码吗?

你的问题不清楚。但我认为你想复制数据

试试这个

function extend(a, b){
    for(var key in b)
        if(b.hasOwnProperty(key))
            a[key] = b[key];
    return a;
}

var arr = {
    "data": {
        "moduleName": {
            "content": {
                "moduleName": {
                    "property1": "Lorem Ipsum Dummy Text",
                    "property2": ['abc', 'xyz']
                }
            },
            "property3": "300438825",
            "property4": "item"
        }
    }
};


var b = {
    "property3": "300438825",
    "property4": "item"
};

console.log(extend(arr.data.moduleName, arr.data.moduleName.content.moduleName));

请参见

需要将property1和property2从content.moduleName复制到data.moduleName。我认为您需要进行复制,并向JSONall添加两个新属性data.moduleName.content.moduleName中的所有属性在data.moduleName中进行复制。moduleName应该再次返回整个数据,我看不到var b在任何地方的使用。