在JSON中解析错误消息失败

时间:2011-04-09 10:01:50

标签: javascript

Titanium SDK版本:1.6.1
iPhone SDK版本:4.2

我从我正在使用的API中获得此响应,我想要一个弹出窗口 显示每个错误。例如:Desc不能为空。我正在使用JavaScript。

这是JSON中的输出。

{"desc":"can't be blank","value_1":"can't be blank"}

我尝试了这个,但它逐个输出每个角色。

for (var thekey = 0; thekey < response.length; thekey++) {

    alert(response[thekey]);

};

如何输出错误?

2 个答案:

答案 0 :(得分:1)

您必须首先使用JSON.parse

将JSON解析为JavaScript对象
response = JSON.parse(response);

JSON对象可能在旧浏览器中不可用,您必须包含json2.js

您不能使用普通的for循环来迭代对象。您必须使用for...in

for (var thekey in response) {
    if(response.hasOwnProperty(thekey)) {
        alert(response[thekey]);
    }
}

对象的属性为descvalue_1,您无法使用数字键访问它们。

答案 1 :(得分:1)

如果response是一个字符串,您需要先将其解码为一个对象,然后再对其执行任何操作。现在你只需循环一个字符串并打印每个字符。

您可能也想使用

for (var key in responseObject) {
   var value = responseObject[key];
}

因为它是一个对象而你的键不是数字。