私は次のjsonを持っています
{"result": { "a": 1, "b": 2 "c": [ { "d": 3, "e": 4 }, { "d": 3, "e": 4 } ] }}
私はそれを次のように変更したい:
{"result": [{ "a": 1, "b": 2, "d": 3, "e": 4 }, { "a": 1, "b": 2, "d": 3, "e": 4 }]}
このようにJSONを変更する方法はありますか?
私は次のjsonを持っています
{"result": { "a": 1, "b": 2 "c": [ { "d": 3, "e": 4 }, { "d": 3, "e": 4 } ] }}
私はそれを次のように変更したい:
{"result": [{ "a": 1, "b": 2, "d": 3, "e": 4 }, { "a": 1, "b": 2, "d": 3, "e": 4 }]}
このようにJSONを変更する方法はありますか?
これに使用できますArray.prototype.reduce()
:
var obj = {"result": { "a": 1, "b": 2, "c": [ { "d": 3, "e": 4 }, { "d": 3, "e": 4 } ] }};
var res = obj.result.c.reduce(function(res, arrObj) {
res.result.push({a:obj.result.a, b:obj.result.b, d:arrObj.d, e:arrObj.e});
return res;
}, {result:[]});
または、より動的にする必要がある場合は、次のようにします。
var res = obj.result.c.reduce(function(res, arrObj) {
Object.keys(obj.result).forEach(function(key) {
if (typeof obj.result[key] !== 'object')
arrObj[key] = obj.result[key];
});
res.result.push(arrObj);
return res;
}, {result:[]});