2016-03-15 49 views
0

我有一個json格式的字符串數組。我想循環解析它。它不在那個循環中解析。第一個元素之後,它的給出和意外令牌的錯誤。node.js不能從循環解析

如:

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

你的第一行代碼需要定義一個數組並賦值給一個實際的變量和你的'for'循環可以再參考那個變量。對已經是Javascript對象的數據調用'JSON.parse()'也沒有意義。 'JSON.parse()'用於將JSON字符串轉換爲Javascript對象。當你傳遞它時,它什麼也不做,它已經是一個Javascript對象了。 – jfriend00

回答

0

我不確定你想在這裏做什麼。但是,如果你想要做的與每個對象的東西(在你的情況下,5個對象與屬性id10的值),你可以簡單地做:

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 
+0

數組值可能不同。我想要在循環或流中解析。 – swaraj

+0

@ user2393848你是否需要做「解析」取決於你在數組中有什麼值,但是如果你沒有在問題中指定它,我們不能算出任何結果 – Jcl