iOS JSON解析麻烦
Posted
技术标签:
【中文标题】iOS JSON解析麻烦【英文标题】:iOS JSON parse trouble 【发布时间】:2013-04-24 05:11:27 【问题描述】:我应该如何解析带有格式的 JSON:
"1":
"name": "Бекон",
"unit": "гр."
,
"2":
"name": "Бульон куриный",
"unit": "ст."
和:
"recipeCode" : "00001",
"inCategory" : "12",
"recipe" : "Зимний тыквенный суп",
"difficulty" : 2,
"personCount" : 4,
"prepHour" : 1,
"prepMin" : 30,
"comments" : "При подаче добавить сметану, крутоны и присыпать сыром",
"ingredients" :
"2" : 3,
"11" : 2,
"13" : 1,
"14" : 2,
"19" : 1
第二个我什至没有尝试...但是第一个我遇到了一些问题。我这样做:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Ingredients" ofType:@"json"];
NSData *myData = [NSData dataWithContentsOfFile:filePath];
NSError *error = nil;
NSDictionary *ingredients = [NSJSONSerialization JSONObjectWithData:myData options:kNilOptions error:&error];
比我有两个键/值对的 ingredient 字典。它们都包含 key“1”和 value“1 键/值对”,而没有关于“名称”或“单位”值的任何内容。
关于如何正确解析此类 JSON 的任何帮助
【问题讨论】:
当我执行您的代码时,JSON 被正确解析。请提供更好的说明,说明为什么它不适合您。你能 NSLog 字典并包含你的输出吗? NSLog 显示所有内容(但“调试窗口”未显示).. 好的,这可行,但如何读取这些内部数据? 你想如何显示数据? 【参考方案1】:你正在正确解析它,你将得到的输出将在字典中
解析将输出作为 objects as NSDictionary 和 array as NSArray
所以在您的情况下,键 1 和键 2 本身具有 NSDictionary 的值
NSDictionary *dict1 = [ingredients objectForKey:@"1"];
NSDictionary *dict2 = [ingredients objectForKey:@"2"];
和价值为
NSString *name=[dict1 objectForKey:@"name"];
NSString *unit=[dict1 objectForKey:@"unit"];
【讨论】:
是的!我明白它是如何工作的。谢谢!所以第二个文件是一个字典,而 ingredients 是一个包含字典的对象。我说的对吗? 是的,就是这样。如果是对象表示,那么它是字典,如果是数组 [],那么它是 nsarray 返回以上是关于iOS JSON解析麻烦的主要内容,如果未能解决你的问题,请参考以下文章