如何将json数据解码为objective-c中的数组[重复]

Posted

技术标签:

【中文标题】如何将json数据解码为objective-c中的数组[重复]【英文标题】:how to decode json data to an array in objective-c [duplicate] 【发布时间】:2013-08-11 18:25:29 【问题描述】:

我创建了一个 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 数组?用目前的方法可以吗?

【问题讨论】:

"如何将 json 数据解码为 xcode 中的数组" - 你不能,Xcode 不是 JSON 解析器。 那么xcode可以轻松解析哪些数据呢?我应该在我的 API 中返回哪些数据才能在 xcode 上轻松读取? Xcode 最多可以解析自己的数据格式(例如,Xcode 项目文件)。我敢打赌您不想使用 Xcode 解析 JSON,而是使用 您的应用程序。 这是两件不同的事情,如果确实如此,那么您的问题 nothing 与 Xcode 无关。 我的错,我的意思是objective-c而不是xcode... 然后看看我发布的链接的答案,你很可能正在寻找Objective-C快速枚举:for (id element in array) ... 【参考方案1】:

尝试在 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:

【讨论】:

以上是关于如何将json数据解码为objective-c中的数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

通过 PHP 将来自 MySQL 的 JSON 解码为 SwiftUI 中的复杂结构

Beautiful Soup 如何解码 <script> 对象中的 html json 数据

如何使用 cURL 获取 JSON 数据并解码数据?

如何将 json 字符串解码为 UTF-8?

如何将 JSON 解码为不同的类型?

当您不知道 Swift 中的项目类型时,如何解码嵌套的 JSON 数据? [复制]