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

问题描述:

我想解析JSON到NSDictionary中。我尝试了很多不同的方式,而且我总是遇到同样的错误。下面是最简单的例子:解析JSON时出现无法解释的错误

 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中为空,这是我现在在控制台输出具有什么:

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

好像我已经完全描述了我的问题。任何帮助是非常希望和赞赏。感谢您的时间

响应:

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

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

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

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

应该

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