javascript - 如何更改 JSON 结构

标签 javascript json

我有这样的 JSON 数据

{
    "nodes": [
        {
            "node": {
                "title": "Kieu Oanh",
                "Image": "",
                "view_node": "view",
                "link": "drupal_dev/content/kieu-oanh"
            }
        },
        {
            "node": {
                "title": "Kieu Oanh",
                "Image": "",
                "view_node": "view",
                "link": "drupal_dev/content/kieu-oanh"
            }
        },

    ]
}

现在我想把它转换成

var rel_data = [{
    "title": "asa",
    "Image": "sasa",
    "view_node": "sajsjla"
}, {
    "title": "asa",
    "Image": "sasa",
    "view_node": "sajsjla"
}]

这是我将数据转换为 rel_data 的代码

data = data.nodes;
for (d in data) {
    rel_data[d].title = data[d].node.title;
    rel_data[d].image = data[d].node.Image;
}
for (d in rel_data) {
    alert(rel_data[d].title);
}

但是好像不行,是不是我的代码有什么问题?

最佳答案

您正在尝试编辑尚不存在的对象。

您要做的第一件事是在还没有rel_data 时访问rel_data。您要做的第二件事是更改不存在的数组元素的属性。

您的代码应如下所示才能工作:

 data = data.nodes;
 rel_data = new Array(); // Create rel_data
 for(d in data) {
        rel_data[d] = new Object(); // Create array element
        rel_data[d].title= data[d].node.title;
        rel_data[d].image= data[d].node.Image;
 }

 for(d in rel_data) {
        alert(rel_data[d].title);
 }

关于javascript - 如何更改 JSON 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15363782/

相关文章:

javascript - 跨源请求被阻止,但所有请求都指向源域

javascript - 使用 topojson 和 D3 映射数据

json - 如何使用和服 API

javascript - 如何使用 Angular.js 在页面上显示从 JSON 检索的图像

jquery - Ajax POST 请求不起作用

php - 使用 PHP 加载 JSON

javascript - 计算所选文本的宽度和高度(javascript)

javascript - 在 JavaScript 中将 JSON 字符串解析为特定的对象原型(prototype)

javascript - Spring session 超时重定向到登录

javascript - 如何使用 Trello JS API 创建卡片