2012-05-23 3 views
0

Привет, я полный новичок для json. Я пытаюсь разобрать JSON-файл в веб-страницы, просто нравится объяснено в этой теме .........Основной запрос Json/javascript

Very basic JSON question

Однако мой файл JSON большой список контактов, которые не являются в массиве типа «люди» в приведенном выше примере. вместо этого первые 6 строк моего 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]" } 

Как я могу прокручивать их для отображения, как в приведенной выше теме? Спасибо заранее.

+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» в качестве ключа и «данные [k]» в качестве значения.

+0

Объект буквальный не JSON. – Alnitak

+0

, то вы можете использовать функцию eval. – JDev

+0

oh please god no - never - ever - использовать 'eval' для разбора JSON - использовать встроенный синтаксический анализатор или подходящую меру. – Alnitak

Смежные вопросы