0

次に例を示します。

私はこのjsonAを持っています

{ "a":"1", "b":"2", "c":{"a":"1", "b":"2"} }

そしてこのjsonB

{ "b":"2new", "c":{"a":"1new"} }

最初の jsonA を jsonB の新しい値で更新し、最後に次の結果を得たいと思います。

{ "a":"1", "b":"2new", "c":{"a":"1new", "b":"2"} }

手動で次のようにすべての値を設定できます。

jsonA.b = jsonB.b;
jsonA.c.a = jsonB.c.a;

forEachですべての値をチェックせずに自動的に行う方法はありますか?

4

2 に答える 2

1

私はちょうどこれを書いた:

jsonA = { "a":"1", "b":"2", "c":{"a":"1", "b":"2"} }

jsonB = { "b":"2new", "c":{"a":"1new"} }

for (var j in jsonA) {
    if(jsonB.hasOwnProperty(j)) {
        if (typeof jsonA[j] === 'object') {
            for (var i in jsonA[j]) {
                if(jsonB[j].hasOwnProperty(i)) {
                   jsonA[j][i] = jsonB[j][i];
                }
            }
        } else {
            jsonA[j] = jsonB[j];

        }
    }

}

ここでチェックしてください:http://jsfiddle.net/YtgQS/

于 2013-07-17T23:30:15.843 に答える