javascript - 使用 javascript 创建特定格式的 json

标签 javascript

我有一个复杂的 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/

相关文章:

javascript - 在什么情况下可以解决 promise 但不触发完成回调?

javascript - 在 Ajax 中发送复选框值

javascript - 向另一台服务器发出 AJAX 请求

javascript - rails : javascript_include_tag :all purpose?

javascript - 正则表达式匹配常见网站 URL

javascript - 在 html url 中添加 javascript 日期时间

javascript - 使用 Javascript 将 CSV 从 URL 解析为数组

javascript - 如何正确地将 youtube iframe 嵌入到 Angular2 View 中?获取不安全值错误

javascript - jQuery 重定向到另一个文件

JavaScript 架构 - 中介者,何时使用它们?