JSON对象,未定义?

时间:2011-03-18 15:06:24

标签: javascript jquery ajax json

我正在尝试使用jQuery,AJAX和JSON开发Web应用程序。 我有这段代码:

console.log(response.s);
if (response.s == true) {
    alert('good');
} else {
    alert('bad');
}

response(在Firebug上通过console.log())似乎是:

{"s":true}

这似乎是一个JSON对象吗? 好吧,我在这里添加的第一个代码的行console.log(response.s);返回undefined。有什么问题?

3 个答案:

答案 0 :(得分:7)

什么是typeof (response)?如果它是一个字符串,那么你必须先解析它。 (您将访问不存在的字符串的s字段,因此JavaScript会为您提供undefined,而不是抛出异常或其他内容。)

答案 1 :(得分:1)

如果响应的content-type不是application/json,那么javascript可能假设它只是一个字符串。

因此,提供正确的内容标题应该可以解决您的问题。

或者,您可以使用eval()将字符串转换为json对象。

答案 2 :(得分:1)

尝试使用:

var obj = jQuery.parseJSON(response);
console.log(obj.s);

希望它有所帮助。