读取 JSON 数据的 NSDictionary
Posted
技术标签:
【中文标题】读取 JSON 数据的 NSDictionary【英文标题】:Reading NSDictionary of JSON data 【发布时间】:2020-04-01 16:23:41 【问题描述】:我有 JSON 数据:
"data":[
"userID":"1", "username":"name1",
"userID":"2", "username":"name2",
"userID":"3", "username":"name3"
]
返回到一个 NSDictionary。
NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:jsonReturnData options:kNilOptions error:&err];
jsonObject 如下所示:
然后如何读取 NSDictionary 中的值?我有:
NSDictionary *dictItem1 = (NSDictionary *)jsonObject;
读取数据项但如何获取值?
【问题讨论】:
您提供的 JSON 未反映您放置的屏幕截图。这是***的NSArray
,而不是NSDictionary
。
【参考方案1】:
终于让它把数据读入一个 NSArray:
NSArray *JsonData = [NSJSONSerialization JSONObjectWithData:jsonReturnData options:NSJSONReadingAllowFragments error:&err];
NSArray *array = [JsonData objectAtIndex:0];
NSDictionary *dictItem = (NSDictionary *)array;
NSArray *arrayItems = [dictItem objectForKey:@"data"];
arrayItems 然后保存每条记录。
正如所指出的,它进一步简化为:
NSArray *JsonData = [NSJSONSerialization JSONObjectWithData:jsonReturnData options:NSJSONReadingAllowFragments error:&err];
NSDictionary *dictItem = (NSDictionary *)[JsonData objectAtIndex:0];;
NSArray *arrayItems = [dictItem objectForKey:@"data"];
【讨论】:
NSDictionary *dictItem = (NSDictionary *)array;
?什么?这根本没有意义。只需执行NSDictionary *dictItem =
(NSDictionary *)[slidersJsonData objectAtIndex:0];`.
另外,不需要NSJSONReadingAllowFragments
。
@Larme 您的第一条评论正是我所做的,但您已将其简化为编辑中所示。是对的吗?我已经尝试了每个 NSJSONReadingOptions 并且它们都有效。你有什么建议 - NSJSONReadingMutableContainers?
评论是关于您将其命名为数组,但它不是数组!是字典!这就像给牛取名狗一样。对于选项,使用 nilOption。
我同意将其命名为“数组”是不明智的,但它是一个数组。如果我将它设置为 NSDictionary,我会收到一个错误,因为你不能在字典中使用 objectAtIndex。此外,我不能在没有警告的情况下将 nil 作为选项。无论如何,它运行良好 - 感谢您的检查。以上是关于读取 JSON 数据的 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章