假设您已经将字符串字典放入字典中:
NSDictionary* jsonSocketData;
for(NSDictionary* data in jsonSocketData[@"data"]) {
/* whatever */
NSLog(@"%@", data[@"abc"]);
}
顺便说一句,我希望您的请求结果更像这样:
{
"result": [
{
"data": {
"abc": [],
"pqr": []
},
"error": ""
},
{
"data": {
"abc": [],
"pqr": []
},
"error": ""
}
]
}
如果您必须将 NSString (json) 转换为 NSDictionary:
NSString* jsonString = @"..";
NSData* data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
编辑
如果您发布的字符串是您收到的确切字符串,我会使用这个技巧(这样 json 格式会正确):
NSString* response = @"...";
/* only if you are sure about format */
response = [response stringByReplacingOccurrencesOfString: @"}{" withString:@"},{"];
/* otherwise you can apply regex, defintely more flexible, with pattern "}(.?){" */
response = [NSString stringWithFormat:@"{\"result\":[%@]}", response];
在这个技巧之后,您可以应用上面的代码。
顺便说一句,在我看来,最好的方法是拥有一个格式良好的 json,而不是应用无聊和自定义的解析。