【问题标题】:How to add the data into json object?如何将数据添加到 json 对象中?
【发布时间】:2014-08-21 15:51:05
【问题描述】:

我正在尝试使用 for 循环将数据添加到 json 对象中,但 push 方法不起作用,因为它将对象添加到 json 数组中,有没有想法将数据添加到 json 对象中?

我的代码:

    var data = [
        { Name: "Jake", Gender: "Male", Address: "Address1" },
        { Name: "Laura", Gender: "Female", Address: "Address2" },
    ];

    for (var i = 0; i < data.length; i++) {
        if (data[i].Gender == "Male") {
            data[i].push({ Icon: "image/male.png" });
        } else {
            data[i].push({ Icon: "image/female.png" });
        }
    }

    var result = data;

我需要的结果是:

result = [
            { Name: "Jake", Gender: "Male", Address: "Address1", Icon: "image/male.png" },
            { Name: "Laura", Gender: "Female", Address: "Address2", Icon: "image/female.png" },
        ];

数据Icon将根据if条件添加到每个对象中

【问题讨论】:

  • this ...可能有用
  • 我已经看过那个链接 Bhushan ,他们使用push 方法

标签: javascript jquery json


【解决方案1】:

Icon只有一个,直接设置即可:

for (var i = 0; i < data.length; i++) {
    if (data[i].Gender == "Male") {
        data[i].Icon = "image/male.png";
    } else {
        data[i].Icon = "image/female.png";
    }
}

之前,您应该在控制台中看到一个错误,因为 data[i] 是一个对象(不是数组)并且没有任何方法 push

【讨论】:

  • 说他所说的 JSON 是一个无效的 JSON,而不是一个填充了对象字面量的数组。
【解决方案2】:

这是你需要做的:

var data = [
        { Name: "Jake", Gender: "Male", Address: "Address1" },
        { Name: "Laura", Gender: "Female", Address: "Address2" },
    ];
    for (var i = 0; i < data.length; i++) {
        if (data[i].Gender == "Male") {
            data[i].Icon = "image/male.png";

        } else {
            data[i].Icon = "image/female.png";
        }
    }

    var result = data;
    alert(result[0].Icon);
    alert(result[1].Icon);

请查看您的工作小提琴here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2022-01-27
    • 1970-01-01
    • 2019-08-04
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多