我有一个基本的Node.js脚本,它从几个变量和其他数组创建一个JSON数组。但是,每当我在我的代码中调用myJSON.title时它根本不起作用。它给出了undefined。有人可以帮帮我吗?
for (var i = 0; i < route.length; i++) {
var item = {
"title": title[i],
"date": date[i],
"summary": summary[i],
"route": route[i],
"pebbleid": "geoquery-" + timegreeting + route[i]
};
myarray.push(item);
for (var i = 0; i < route.length; i++) {
var item = {
"title": title[i],
"date": date[i],
"summary": summary[i],
"route": route[i],
"pebbleid": "geoquery-" + timegreeting + route[i]
};
myarray.push(item);
}
myJSON = JSON.stringify({delays: myarray});
console.log(myJSON);
}
答案 0 :(得分:4)
myJSON.title
未定义的原因是JSON.stringify
返回一个字符串,而字符串没有title
属性。
由JSON字符串myJSON
表示的对象具有单个属性delays
,(因为这是您放在JSON.stringify
中的内容)。该属性的值是一个数组。该数组的每个元素都是一个具有title
属性(date
,summary
等)的对象。因此,要获得任何一个title
,首先必须检索delays
数组,然后通过索引检索其中一个元素,然后检索该元素的title
属性。
因此,例如delays
中的第0个元素,你会这样做:
obj.delays[0].title
我使用了“obj
”,因为这不适用于myJSON
,因为正如我所说,在您显示的代码中myJSON
是一个JSON字符串,而不是JavaScript对象,所以没有delays
属性。