读取 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的主要内容,如果未能解决你的问题,请参考以下文章

java怎么读取json格式的数据

java怎么读取json格式的数据

js怎么读取本地的 json数据

java怎么读取json格式的数据

C# 读取 Json 并读取数据 [关闭]

C#怎么从http上返回JSON数据并读取?