我有一个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)
{
}
}
这会产生意外的令牌错误消息。可能有什么问题?
感谢。
答案 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