我有一个复杂的 JavaScript 代码,简化后如下..
function getjson1() {
return {
'json1': {
id: 'jsonid1'
}
};
}
function getjson2() {
return {
'json2': {
id: 'jsonid2'
}
};
}
myjson = [];
myjson.push(getjson1());
myjson.push(getjson2());
function finaljson() {
return {
'json': myjson
};
}
console.log(JSON.stringify(finaljson()));
现在这段代码的结果是
{"json":[{"json1":{"id":"jsonid1"}},{"json2":{"id":"jsonid2"}}]}
现在我需要更改这段代码,以便我可以摆脱数组并可以遍历 json 对象,例如 json.json1.id 等。
一个示例如下所示..
{"json":{"json1":{"id":"jsonid1"},"json2":{"id":"jsonid2"}}}
真诚感谢任何帮助。
谢谢
最佳答案
如果您不需要数组,就不要使用数组。首先,基于 jQuery 的解决方案:
myjson = {};
myjson = $.extend(myjson, getjson1());
myjson = $.extend(myjson, getjson2());
在原生 JavaScript 中,您可以使用以下函数:
function extend (target, source) {
Object.keys(source).map(function (prop) {
target[prop] = source[prop];
});
return target;
};
这样,第一段代码就变成了这样:
myjson = {};
myjson = extend(myjson, getjson1());
myjson = extend(myjson, getjson2());
关于javascript - 使用 javascript 创建特定格式的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31785240/