作为AJAX通话的一部分,我有一个属性"成功"看起来像这样:
success: function(msg) {
console.log( msg );
var obj = $.parseJSON( msg );
if (obj.code=="1")
{
...
}
}
正如您所看到的,我期待着一个JSON字符串,确实有一个从服务器返回,如下所示:{"code":"1","message":"1","name":"Alan"}
JSON字符串是在NET / Response选项卡下显示在FireBug中的内容。哪个好。你可以看到我使用parseJSON(...)来获取对象的句柄。但是当条件语句执行时,我被告知obj为NULL。这可能不错!我不知道那里发生了什么。
你会注意到我在控制台上打印了msg变量。这是看起来像:
对象{code =" 1",message =" 1",name =" Alan"}
我在返回的JSON字符串和打印到控制台的内容之间看到的唯一区别是我们将冒号替换为等号符号。我不知道这是否重要?
以前有人遇到过这个吗?请告知。
艾伦
答案 0 :(得分:6)
您的控制台日志表明msg已经从json解析为对象。不要只使用msg作为对象来呼叫$.parseJSON
另外,如果您希望从请求中获得json响应,请将$ .ajax dataType
参数设置为json
,以确保将json解析为对象。