解析JSON时出现无法解释的错误

时间:2012-02-06 13:15:26

标签: iphone objective-c json asihttprequest

我正在尝试将JSON解析为NSDictionary。我尝试了很多不同的方法,我总是有同样的错误。这是最简单的例子:

     NSString *response = [request responseString];
     NSLog(@"%@",response);

     NSDictionary *jsonDict = [response JSONValue];
     NSLog(@"%@",jsonDict);

我可以有两种类型的responseString: 1)像{"s_login":{"error":6}}

之类的东西

2)像{s_login:{"error":0,"sid":"66d4da3e870427bb"}}

这样的东西

所以问题是:

当responseString为1时 - 一切正常。我能够把它变成NSDictionary,我的NSLog告诉我:

{
"s_login" =     {
    error = 6;
};
}

但是当responseString是第二个变体时,NSDictionary为null,这就是我在控制台输出中所拥有的:

 -JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object key string expected\" UserInfo=0x6043680 {NSLocalizedDescription=Object key string expected}"

好像我已经完全描述了我的问题。任何帮助都非常需要和赞赏。谢谢你的时间

2 个答案:

答案 0 :(得分:4)

{s_login:{"error":0,"sid":"66d4da3e870427bb"}}

应该是

{"s_login":{"error":0,"sid":"66d4da3e870427bb"}}

答案 1 :(得分:3)

回应:

{s_login:{"error":0,"sid":"66d4da3e870427bb"}}

不是有效的JSON字符串。它缺少s_login周围的双引号。它们是强制性的。

您必须在服务器端修复它。