我有以下json返回的字符串:
[{"status":2,"id":"-1","content":"User has entered wrong input","time":1346765646202}]
(如您所见,结果位于包含单个对象的数组中)。
如何在不使用枚举的情况下提取状态和内容的值?
现在我创建了一个字典并使用枚举运行它,但我不喜欢这个解决方案:
NSData *jsonData = [returnString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
答案 0 :(得分:4)
因为整个事情都包含在[]中,它将反序列化为NSArray(大小为1)(不是代码所暗示的NSDictionary)。该数组中的元素将是NSDictionary({}
)。您可以使用objectAtIndex:0
获取该字典并跳过枚举:
NSData *jsonData = [returnString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSDictionary *response = [json objectAtIndex:0];
NSNumber *status = [response objectForKey:@"status"];
NSString *content = [response objectForKey:@"content"];
答案 1 :(得分:0)
NSNumber * status = json[@"status"]
或
NSNumber * status = [json objectForKey: @"status"]
等