如何将json数据解码为objective-c中的数组

时间:2013-08-09 18:20:23

标签: objective-c json

我创建了一个API,结果以json的形式发布,格式如下:

{"response":"ok","data":[{"file_name":"sample file name one","server_url":"someurl","file_thumb":"images\/7ibysd4f8wiy_t.jpg"},{"file_name":"sample file name two","server_url":"someurl","file_thumb":"images\/jm3t6aat8uhq_t.jpg"}]}
直到现在我才使用以下功能:

- (NSArray*) jsonToArray:(NSString *)responseData{

    NSData* data = [responseData dataUsingEncoding:NSUTF8StringEncoding];
    NSArray *values = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];  // if you are expecting  the JSON string to be in form of array else use NSDictionary instead

    return values;

}

然后我会得到像这样的数组:

data_array = [self jsonToArray:data_js];
[data_array valueForKey:@"data"]

但我如何能够遍历data数组?用现有的方法可以吗?

1 个答案:

答案 0 :(得分:0)

尝试在NSDictionary和NSArray上使用新的enumerateObjectsUsingBlock API。您可以在NSJSONSerialization返回的变量上调用它

它非常简单,代码比快速枚举更清晰。

http://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/enumerateObjectsUsingBlock