gpt4 book ai didi

ios - 在 objective-c 中解析多行json

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:10:07 27 4
gpt4 key购买 nike

我有一个包含大量数据的 json 文件,如下所示:

 [{"pkg_id": 385 ,"pkg_name":" 10OZ NR 1/24      "},
{"pkg_id": 822 ,"pkg_name":" 12OZ CN "},
{"pkg_id": 422 ,"pkg_name":" 12OZ CN 6/4 "}]

如何获取数组中的 pkg_id 列表。

我明白了,如果只有一行,那我可以做

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
NSArray* array = [jsonDict objectForKey:@"pkg_id"];

如何处理多行。如果我必须开始一个循环,如何枚举字典中的行数?

也试过了。

 for (NSDictionary *status in jsonDict)
{
[newArray addObject:[status objectForKey:@"pkg_id"]];
}

但是 NSLog(@"%@", newArray); 外部循环给出空值。

最佳答案

给定原始 JSON,我们可以像这样将其转换为 NSDictionary 或 NSArray:

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];

此时,jsonDict 将是nilNSArrayNSDictionary。如果是字典,则可以遍历键;如果是数组,则可以遍历索引。

遍历 NSDictionary 的键:

for(id key in [jsonDict allKeys]) {
...
}

遍历 NSArray 的索引:

for(id element in jsonDict) {
...
}

在你的例子中,你有一个 NSArray。如果你想获得所有 pkg​​_ids 的列表,那么你可以这样做:

NSMutableArray *pkg_ids = [NSMutableArray array];
for(NSDictionary *dictionary in jsonDict) {
[pkg_ids addObject:[dictionary objectForKey@"pkg_id"]];
}
// Now pkg_ids = {385, 822, 422}
// Note, this is untested -- there may be minor tweaks but the idea stays the same.

关于ios - 在 objective-c 中解析多行json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659166/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com