Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Разбираем вывод JSON'a (https://javascript.ru/forum/server/29766-razbiraem-vyvod-json%27.html)

Nerfair 10.07.2012 16:37

Разбираем вывод JSON'a
 
Такое дело, разбираю вывод JSON'a

{ "error" : 0, "questions" : [ { "id" : 1, "text" : "Размер планеты", "correct_answer_id" : 3, "options" : [ { "id" : 1, "text" : "Маленькая"}, { "id" : 2, "text" : "Средняя"}, { "id" : 3, "text" : "Большая"} ] } ] }


var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://" + SERVER_URL + "/get-questions-pack.php", true);
    xhr.setRequestHeader('Accept-Encoding', 'gzip');

    xhr.onreadystatechange =
            function() {
                if (xhr.readyState == xhr.DONE) {
                    if (xhr.status == 200) {
                        var result = JSON.parse(xhr.responseText);
                        switch (result["error"]) {

                            // No error
                            case 0: {
                            }
                            break;

                            // Error
                            case 1: {
                            }
                            break;
                        }
                    }
                    else {
                    }
                }
            }
    xhr.send();


Как видим, до поля error я достучаться смог, а как мне обработать question?:help:

--

Включил мозги и заработало.
result["questions"]["0"]["id"]

vadim5june 10.07.2012 16:55

Цитата:

Сообщение от Nerfair (Сообщение 187777)
Как видим, до поля error я достучаться смог, а как мне обработать question?

да если напишем alert(result.error) то получим 0 а чтобы найти результат например "correct_answer_id" нужно написать
alert(result["questions"][0]["correct_answer_id"]);
итд

Nerfair 10.07.2012 16:58

Цитата:

Сообщение от vadim5june (Сообщение 187784)
да если напишем alert(result.error) то получим 0 а чтобы найти результат например "correct_answer_id" нужно написать
alert(result["questions"][0]["correct_answer_id"]);
итд

Да, спасибо, именно так работает! :thanks:

vadim5june 10.07.2012 17:04

Цитата:

Сообщение от Nerfair (Сообщение 187785)
Да, спасибо, именно так работает!

если встречаются квадратные скобки-массив-нужно искать по индексу-
result["questions"][0]
а если фигурные -объект то по названию
result["questions"][0]["id"]


Часовой пояс GMT +3, время: 00:42.