我有这样的 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/