
05.02.2013, 12:26
|
 |
Интересующийся
|
|
Регистрация: 29.04.2009
Сообщений: 22
|
|
Ошибка парсинга JSON
Всем привет. Открыл для себя JSON. Пытаюсь разобраться. Создал небольшую тестовую функцию, но получаю странную ошибку при парсинге JSON файла. Подскажите, что я делаю не так.
// получение массива из JSON
xmlHttp.open("GET", "test.json", true);
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
var arr = JSON.parse(xmlHttp.responseText);
}
}
}
xmlHttp.send(null);
test.json:
Код:
|
{
"var0": [
{ "id": 0, "num": 100},
{ "id": 1, "num": 101},
{ "id": 2, "num": 102}
],
"var1": [
{ "id": 0, "num": 103},
{ "id": 1, "num": 104},
{ "id": 2, "num": 105}
],
"var2": [
{ "id": 0, "num": 106},
{ "id": 1, "num": 107},
{ "id": 2, "num": 108}
]
} |
Chrome пишет в консоли:
Uncaught SyntaxError: Unexpected token {
ссылаясь на строку 6 в JS: var arr = JSON.parse(xmlHttp.responseText);
|
|

05.02.2013, 12:39
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
|
|

05.02.2013, 12:43
|
 |
Интересующийся
|
|
Регистрация: 29.04.2009
Сообщений: 22
|
|
JSONP это библиотека, а я хочу сам разобраться во всём.
Блин,  еще думал сразу написать, чтобы не советовали jquery, jsonp итп
|
|

05.02.2013, 12:47
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от keysi_
|
JSONP это библиотека,
|
- нет
=====================
http://learn.javascript.ru/json
|
|

05.02.2013, 13:13
|
 |
Интересующийся
|
|
Регистрация: 29.04.2009
Сообщений: 22
|
|
Сообщение от Deff
|
- нет
=====================
|
Ну возможно, я не вникал в суть, все равно некая надстройка, не прямой путь.
Я очень уважаю Илью, но либо я ни чего не понял, либо я не понял как может помочь мне эта статья. Раз моя ошибка на столько наглядна для вас - укажите строку в статье, которую я, видимо по своей невнимательности, упускаю из виду.
|
|

05.02.2013, 13:16
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,144
|
|
keysi_,
может всё дело в том что вы обьект не конвертировали в строку json?
попробуйте это поместить в test
{"var0":[{"id":0,"num":100},{"id":1,"num":101},{"id":2,"num ":102}],"var1":[{"id":0,"num":103},{"id":1,"num":104},{"id":2,"num ":105}],"var2":[{"id":0,"num":106},{"id":1,"num":107},{"id":2,"num ":108}]}
Последний раз редактировалось рони, 05.02.2013 в 13:19.
|
|

05.02.2013, 13:20
|
 |
Интересующийся
|
|
Регистрация: 29.04.2009
Сообщений: 22
|
|
Блин. Оказывается я всё сделал правильно и всё работает!
Дело было в том что в строке, которую я чтобы сократить пост сюда не скопировал:
"var0": [
{ "id": 0, "num": 100},
{ "id": 1, "num": 101},
{ "id": 2, "num": 102},
{ "id": 3, "num": 103},
{ "id": 4, "num": 104},
{ "id": 5, "num": 105}
{ "id": 6, "num": 106},
{ "id": 7, "num": 107},
{ "id": 8, "num": 108},
{ "id": 9, "num": 109},
{ "id": 10, "num": 110},
{ "id": 11, "num": 11}
],
После строки { "id": 5, "num": 105} отсутствовала запятая
Приятно осознать что я всё таки не олень которого нужно в мануалы тыкать. Но вот моя невнимательность когда нибудь меня добьёт.
|
|
|
|