2012-05-23 29 views
0

嗨,我是一個完整的新手json。我試圖解析JSON文件到網頁就像在這個線程解釋.........基本Json/javascript查詢

Very basic JSON question

但是我的JSON文件是接觸的大名單中不在像上面例子中的'people'這樣的數組中。相反,我的json文件的前6行如下所示。

{ "first_name": "Tom", "last_name": "Moore", "phone": "123456", "email": "[email protected]" } 
{ "first_name": "Fred", "last_name": "Power", "phone": "197412", "email": "[email protected]" } 
{ "first_name": "Ann", "last_name": "Doyle", "phone": "836547", "email": "[email protected]" } 
{ "first_name": "Phil", "last_name": "Jones", "phone": "927481", "email": "[email protected]" } 
{ "first_name": "Jane", "last_name": "Ross", "phone": "993377", "email": "[email protected]" } 
{ "first_name": "Tom", "last_name": "Moore", "phone": "123456", "email": "[email protected]" } 

我怎樣才能通過它們循環顯示像上面的線程?提前謝謝了。

+0

您可以讀取該文件,一行一行,並把它們添加到一個數組。這種方式將給你'人民陣列',你將能夠毫不費力地循環。 – Wilk

回答

1

您的json無效。它需要外部的方括號和項目之間的逗號。它應該是:

[ 
    { "first_name": "Tom", "last_name": "Moore", "phone": "123456", "email": "[email protected]" }, 
    { "first_name": "Fred", "last_name": "Power", "phone": "197412", "email": "[email protected]" }, 
    { "first_name": "Ann", "last_name": "Doyle", "phone": "836547", "email": "[email protected]" }, 
    { "first_name": "Phil", "last_name": "Jones", "phone": "927481", "email": "[email protected]" }, 
    { "first_name": "Jane", "last_name": "Ross", "phone": "993377", "email": "[email protected]" }, 
    { "first_name": "Tom", "last_name": "Moore", "phone": "123456", "email": "[email protected]" } 
] 

$.getJSON處理JSON解析爲你 - 只是做:

$.getJSON('/url/of/the/json/file', function(people) { 
    alert(people[0].first_name) 
}); 
0

這不是JSON格式的話,所以你將無法與那些函數來處理它爲json。我建議在服務器端使用lib/function來創建正確的json輸出,然後在客戶端使用它也會容易得多。

0
var t = eval('[{ "first_name": "Tom", "last_name": "Moore", "phone": "123456", "email": "[email protected]" },{ "first_name": "Fred", "last_name": "Power", "phone": "197412", "email": "[email protected]" },{ "first_name": "Ann", "last_name": "Doyle", "phone": "836547", "email": "[email protected]" },{ "first_name": "Phil", "last_name": "Jones", "phone": "927481", "email": "[email protected]" },{ "first_name": "Jane", "last_name": "Ross", "phone": "993377", "email": "[email protected]" },{ "first_name": "Tom", "last_name": "Moore", "phone": "123456", "email": "[email protected]" }]'); 

for (i in t) { 
var data = t[i]; 
    for (k in data) { 
    alert(k+" >> "+data[k]) 
    } 
} 

您可以將「k」作爲關鍵字並將「data [k]」作爲值。

+0

對象文字不是JSON。 – Alnitak

+0

然後你可以使用eval函數。 – JDev

+0

哦,請上帝不要 - 永遠不要 - 使用'eval'來解析JSON - 使用內置的解析器或一個體面的質量墊片。 – Alnitak