如何将这样的 JSON 解析为 NSDictionary 并获取键和值

Posted

技术标签:

【中文标题】如何将这样的 JSON 解析为 NSDictionary 并获取键和值【英文标题】:How to parse such a JSON to NSDictionary and get the keys and values 【发布时间】:2014-03-22 03:02:14 【问题描述】:
[
 
"week": "1-16",
"course": "math",
"lecturer:": "AAA",
"credit": "2"   ,

"week": "9-16",
"course": "tech",
"lecturer:": "BBB",
"credit": "2"   ,

"week": "1-8",
"course": "English",
"lecturer:": "CC",
"credit": "0.5"   ,

"week": "1-16",
"course": "German",
"lecturer:": "DDD",
"credit": "4"   
]

我有这样一个 JSON,并使用以下代码将其解析为 NSDictionary

NSDictionary *resultDic = [NSJSerialization JSONObjectWithData:resData         options:NSJSONReadingAllowFragments error:nil];

但是当我尝试从 NSDictionary 的键中获取值时,会发生错误 我发现 NSDictionary 中没有键。

那么如何使用 ObjectForKey 获取值 谢谢

【问题讨论】:

访问 json.org 并研究 JSON 语法。 (只需要5-10分钟。)然后你会看到你拥有的是一个包含“对象”(字典)的数组。 它是“NSJSONSerialization”,而不是“NSJSerialization”。 【参考方案1】:

resultDic 将是一个字典数组,而不是字典本身。你想要这样的东西:

NSArray * resultArray = [NSJSONerialization JSONObjectWithData:resData   options:NSJSONReadingAllowFragments error:nil];
NSDictionary * result = [resultArray objectAtIndex:0];
NSString * week = [result objectForKey:@"week"];

【讨论】:

以上是关于如何将这样的 JSON 解析为 NSDictionary 并获取键和值的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串的缩进级别解析为 JSON 对象?

如何将打字稿定义解析为json?

如何将 JSON 解析为 UITableview

如何通过改造将数组嵌套对象 Json 解析为 Kotlin?

将JSON转换为Java Object,如何使用Jackson解析BadgerFish约定

使用 jsonkit 将 JSonString 反序列化为 NSArray