objective-c从json字符串中提取单个值

时间:2012-09-04 13:49:42

标签: objective-c xcode json

我有以下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];

2 个答案:

答案 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"]