Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义JSON变量的问题_Javascript_Json_Node.js - Fatal编程技术网

Javascript 未定义JSON变量的问题

Javascript 未定义JSON变量的问题,javascript,json,node.js,Javascript,Json,Node.js,我有一个基本的Node.js脚本,它可以从一些变量和其他数组创建一个JSON数组。它给出了未定义的。谁能帮帮我吗 for (var i = 0; i < route.length; i++) { var item = { "title": title[i], "date": date[i], "summary": summary[i], "route": route[i], "pebbleid": "geoquery-" + timegreet

我有一个基本的Node.js脚本,它可以从一些变量和其他数组创建一个JSON数组。它给出了未定义的。谁能帮帮我吗

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);
}
for(变量i=0;i
myJSON.title
未定义的原因是
JSON.stringify
返回字符串,而字符串没有
title
属性

由JSON字符串
myJSON
表示的对象只有一个属性,
delays
(因为这就是您在
JSON.stringify
中输入的内容)。该属性的值是一个数组。该数组的每个元素都是一个具有
title
属性(以及
date
summary
等)的对象。因此,要获取任何一个
title
,首先必须检索
delays
数组,然后通过索引检索其中一个元素,然后检索该元素的
title
属性

例如,对于
延迟中的第0个元素,您可以执行以下操作:

obj.delays[0].title

我使用了“
obj
”,因为这不适用于
myJSON
,因为正如我所说,在您展示的代码中,
myJSON
是一个JSON字符串,而不是JavaScript对象,因此没有
延迟
属性。

未定义
myJSON.title
的原因是
JSON.stringify
返回字符串,而字符串没有
title
属性

由JSON字符串
myJSON
表示的对象只有一个属性,
delays
(因为这就是您在
JSON.stringify
中输入的内容)。该属性的值是一个数组。该数组的每个元素都是一个具有
title
属性(以及
date
summary
等)的对象。因此,要获取任何一个
title
,首先必须检索
delays
数组,然后通过索引检索其中一个元素,然后检索该元素的
title
属性

例如,对于
延迟中的第0个元素,您可以执行以下操作:

obj.delays[0].title

我使用了“
obj
”,因为这不适用于
myJSON
,因为正如我所说,在你展示的代码中,
myJSON
是一个JSON字符串,不是JavaScript对象,因此没有
延迟
属性。

你能显示
控制台.log(myJSON)
的输出吗,我现在添加它,您是否在for循环之外定义了myJSON?原因是
myJSON.title
undefined
JSON.stringify
返回字符串,而字符串没有
title
属性。非常感谢@Jordan,我现在正在进行修改。如果您想将其作为实际答案提交,我很乐意将其标记为已接受。您可以显示
console.log(myJSON)
的输出吗?当然没问题,我现在添加它,并且您是否在for循环之外定义了myJSON?原因是
myJSON.title
undefined
JSON.stringify
返回字符串,字符串没有
标题
属性。非常感谢@Jordan,我现在正在进行修改。如果你想把它作为一个实际的答案提交,我很乐意把它标记为accepted@AgentSpyname-此Mozilla参考可能有助于更好地理解这些概念:。非常感谢您的帮助。我是JSON新手,这是对我的有点混乱的解决方案的简单而清晰的回答。接受sure@Robert谢谢你的资源too@AgentSpyname-此Mozilla参考可能有助于更好地理解这些概念:。非常感谢您的帮助。我是JSON新手,这是对我的有点混乱的解决方案的简单而清晰的回答。接受sure@Robert也谢谢你的资源