通过AJAX的JSON格式

时间:2011-03-24 04:13:46

标签: javascript ajax json

嗨,我正在获得像这样的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中警告这个响应时它显示为[object Object] ajax代码就像这样

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

我已经尝试了JSON.parse和eval。

4 个答案:

答案 0 :(得分:4)

您可以尝试打印出JSON对象的字符串版本,如下所示:

alert(JSON.stringify(model_result));

答案 1 :(得分:2)

如果您使用FireBox并使用FireBug写console.log (model_result);console.dir(model_result);并确保自己的返回方式如何

答案 2 :(得分:1)

解析的JSON字符串是javascript中的对象。这是正常的。

例如,如果要查看第一个software_id,可以执行以下操作:

alert(model_result.Software[0].software_id);

答案 3 :(得分:0)

这取决于你是如何进行AJAX调用的。大多数API在收到字符串响应时将其转换为EVAL,将其转换为对象。如果你想要STRING,请确保调用TEXT而不是JSON。

在您的情况下,如果您想要字符串,请不要JSON.parse响应。这就是将它转换为对象的原因。

如果要显示属性的值,另一种方法是使用关联数组语法迭代对象

for(var i in resultObject) {
    var value = resultObject[i];
    alert(i + " = "+ value);
}