node.js无法从循环中解析

时间:2016-03-15 06:14:41

标签: node.js parsing

我有一个json格式的字符串数组。我想循环解析它。它没有在该循环中解析。在第一个元素之后,它给出了意外令牌的错误。

例如:

Array[{"id":10}, {"id":10}, {"id":10}, {"id":10}, {"id":10}]
for(var i:Number=0; i<Array.length; i++)
{
 // passing each json string to function
 main_function(Array[i]);
}

function main_function(data)
{
try{
var jsn= JSON.parse(data);
}catch(err)
{
}
}

这会产生意外的令牌错误消息。可能有什么问题?

感谢。

1 个答案:

答案 0 :(得分:0)

我不确定你想在这做什么。但是如果你想对每个对象做一些事情(在你的情况下,5个具有属性id且值为10的对象)你可以这样做:

var myArray = [{"id":10}, {"id":10}, {"id":10}, {"id":10}, {"id":10}];
for(var i=0; i<myArray.length; i++)
{
 // passing each object to your main data function
 main_function(myArray[i]);
}

function main_function(data)
{
  console.log(data.id);
}

您不需要JSON.parse,因为您的数组已经由对象组成。当您接收的是字符串而不是直接对象数组时,使用JSON.parse。例如,如果您拥有的是:

var arrayAsAJSONString = "[{\"id\":10}, {\"id\":10}, {\"id\":10}, {\"id\":10}, {\"id\":10}]";

你会这样做:

var myArray = JSON.parse(arrayAsAJSONString);
// rest of the code exactly the same
相关问题