Формат JSON через AJAX - PullRequest
       5

Формат JSON через AJAX

1 голос
/ 24 марта 2011

привет, я получаю формат json, подобный этому

{
    "communication": [{
        "communication_name": "None",
        "communication_id": "1"
    }],
    "hardware": [{
        "hardware_name": "XXXXXXXX",
        "hardware_id": "6"
    }],
    "Sofware": [{
        "software_name": "XXXXXX",
        "software_id": "3"
    }, {
        "software_name": "XXXXXXXXXXXXX",
        "software_id": "4"
    }]
}

, но в то время как я оповещаю об этом ответе в ajax, он показывает как [объектный объект], ajax-код подобен этому

if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
    var model_result = JSON.parse(xmlHttp.responseText)
    alert('' + model_result);
}

Я пробовал как JSON.parse, так и eval.

Ответы [ 4 ]

4 голосов
/ 24 марта 2011

Вы можете попробовать распечатать строковую версию объекта JSON следующим образом:

alert(JSON.stringify(model_result));

2 голосов
/ 24 марта 2011

если у вас есть FireFox с FireBug, напишите console.log (model_result); или console.dir(model_result);, и вы сами убедитесь, как выглядит возврат

1 голос
/ 24 марта 2011

Анализируемая строка JSON, является объектом в JavaScript.Это нормально.

Если, например, вы хотите увидеть первый software_id, вы можете сделать это:

alert(model_result.Software[0].software_id);
0 голосов
/ 24 марта 2011

Зависит от того, как вы делаете свой AJAX-вызов. Большинство API EVAL имеют строковый ответ по мере их получения, что превращает его в объект. Убедитесь, что вы называете ТЕКСТ, а не JSON, если вы хотите STRING.

В вашем случае, если вы хотите строку, не JSON.parse ответ. Это то, что превращает его в объект.

Если вы хотите отобразить значения свойств, альтернативой является итерация по объекту с использованием синтаксиса ассоциативного массива

for(var i in resultObject) {
    var value = resultObject[i];
    alert(i + " = "+ value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...