1

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

2 回答 2

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"];
于 2012-09-04T13:55:06.683 回答
0
NSNumber * status = json[@"status"]

或者

NSNumber * status = [json objectForKey: @"status"]

等等

于 2012-09-04T13:52:46.747 回答