как читать 3 ответа JSON, как один - PullRequest
0 голосов
/ 20 июня 2011

У меня есть 3 функции, которые вызывают ответ json

функция одна дает:

{
    "IT_INFO": {
        "CARNET": "999250 ",
        "CEDULA": "000013724224",
        "NOMBRE": "pedro ",
        "SEGNOMBRE": "salomon ",
        "APELLIDO": "Perez ",
        "SEGAPELLIDO": "Perza ",
        "EMAIL": "mail@mailexample.com ",
        "IAP": "0.00",
        "IAA": "0.00"
    }
}

вторая функция:

{
    "HISTORICOP": [
        {
            "MATERIA": "PROCESOS DEL LENGUAJE ",
            "NOTA": "7 ",
            "ANIO": "2000",
            "PERIODO": "001",
            "ENEMENOSUNO": "Ordinaria. Estado por defecto "
        }
    ]
}

третья функция:

{
    "HORARIO": [
        {
            "CODIGO": "BERSP01 ",
            "MATERIA": " COMPUTADOR ",
            "AULA": "A1-102 ",
            "PROFESOR": "Quintero Moros, Nelson ",
            "HORARIO": "TU WE FR 08:00-10:00 "
        }
    ]
}

Как должно получиться, чтобы функция JSON.parse(str) прочитала это?

str = [func1,func2,func3] ??

или

str = [[func1],[func2],[func3]]?

или ??? есть идеи ???

1 Ответ

1 голос
/ 20 июня 2011

Я предполагаю, что вы анализируете JSON в JavaScript.

Обычно вы не должны собирать JSON "вручную", но в этом случае это не так уж и плохо:

var objs = JSON.parse('[' + [func1(), func2(), func3()].join(',') + ']');

Это создает массив JSON с тремя объектами, возвращаемыми функциями.

В качестве альтернативы вы можете анализировать ответы по отдельности:

var objs = [func1(), func2(), func3()];
for(var i = objs.length; i--; ) {
   objs[i] = JSON.parse(objs[i]);
}

Конечно, вам придется действовать по-другому, еслифункции не возвращают JSON, но делают Ajax-запрос ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...