将 Json 表解析为 NSMutableArray [重复]

Posted

技术标签:

【中文标题】将 Json 表解析为 NSMutableArray [重复]【英文标题】:Parse a Json Table to a NSMutableArray [duplicate] 【发布时间】:2014-01-19 15:00:50 【问题描述】:

目前我直接通过本机 Objective-C 代码填充我的数组:

Datas *pan1 = [[Datas alloc] initWithTitle:@"My array 1" title:@"Shakespeare's Book" location:@"London"];
Datas *pan2 = [[Datas alloc] initWithTitle:@"My array 2" title:@"Moliere's Book" location:@"London"];


  NSMutableArray *datasListe = [NSMutableArray arrayWithObjects:pan1, pan2, nil];

但我想用这个 Json 列表填充这个 NSMutableArray :


    "myIndex" : [
              
              "name":"My array 1",
              "title": "Shakespeare's Book",
              "location": "London"
              ,
              
              "name":"My Array 2",
              "title": "Moliere's Book",
              "location": "Paris"
              
                ]

有人有想法吗?非常感谢!

【问题讨论】:

到目前为止你尝试过什么? 您拥有的是一个“对象”(字典),其中包含一个名为“myIndex”的条目并包含一个由多个“对象”组成的数组。请参阅 json.org 以了解语法。使用 NSJSONSerialization 转换为 Objective-C 对象。 目前我可以显示整个 Json 数据。例如,我知道如何从“标题”中获取数据。但我无法获取所有“标题”数据并将它们放入数组中 再次访问 json.org 并学习语法。从字面上看,你可以在 5 分钟内全部理解。 如果您解析 JSON,然后访问外部字典的“myIndex”元素,您将得到一个数组。如果该数组适合您,请使用它。如果没有,请将其内容复制到其他地方。这只是代码。 【参考方案1】:

这个json数据可以像这样很容易解析。

NSError *e;
NSArray *dic= [NSJSONSerialization JSONObjectWithData: jsondata options:  NSJSONReadingMutableContainers error: &e];
NSMutableArray *datasListe = [[NSMutableArray alloc] init];
NSMutableArray *data = [dic objectForKey:@"myIndex"];
//Now you have array of dictionaries 
for(NSDictionary *dataDic in data)
NSString *name = [dataDic objectForkey:@"name"];
NSString *title = [dataDic objectForKey@"title"];
NSString *location = [dataDic objectForKey@"location"];
Datas *pan= [[Datas alloc] initWithTitle:name title:title location:location];
[dataList addObject:pan];

【讨论】:

效果很好,谢谢 不客气,如果你满意,可以接受它作为答案:P【参考方案2】:
NSDictionary *firstDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                            @"Raja", @"name",
                            @"Developer", @"title",
                            @"USA", @"location",
                            nil];

  NSDictionary *secondDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                            @"Deepika", @"name",
                            @"Engieer", @"title",
                            @"USA", @"location",
                            nil];

NSMutableArray * arr = [[NSMutableArray alloc] init];

[arr addObject:firstDictionary];
[arr addObject:secondDictionary];

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
NSLog(@"jsonArray as string:\n%@", jsonString);

【讨论】:

我的印象是他想另辟蹊径——他有 JSON 并想提取数据。

以上是关于将 Json 表解析为 NSMutableArray [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将动态 JSON 解析为 Oracle 表

将 Json 表解析为 NSMutableArray [重复]

Json 解析错误:在 Swift iOS 中使用未声明的类型“Foundation”

C# - 将 json 格式的数据解析为嵌套的哈希表

如何使用 PHP 将 JSON 解析为 html 表?

如何使用 php 将这个 JSON url 解析为 HTML 表/列表的授权