我正在尝试将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}"
好像我已经完全描述了我的问题。任何帮助都非常需要和赞赏。谢谢你的时间
答案 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
周围的双引号。它们是强制性的。
您必须在服务器端修复它。