如何在iOS中解析JSON数据

如何在iOS中解析JSON数据,ios,json,Ios,Json,我正在从服务器获得此格式的响应 {updated_at: 12345555 dates: [{"start_date": "2014-03-02", "end_date": "2014-03-02"}, {"start_date": "2014-04-02", "end_date": "2014-04-02"}, {"start_date": "2014-05-02", "end_date": "2014-05-02"}]} 我想解析这些信息并将其添加到2个NSMu

我正在从服务器获得此格式的响应

{updated_at: 12345555 dates:
    [{"start_date": "2014-03-02", "end_date": "2014-03-02"},
     {"start_date": "2014-04-02", "end_date": "2014-04-02"},
     {"start_date": "2014-05-02", "end_date": "2014-05-02"}]}
我想解析这些信息并将其添加到2个NSMutableArray中,但我不知道如何执行此操作

我试过这个

NSMutableArray *startDate = [NSMutableArray array];
NSMutableArray *endDate = [NSMutableArray array];

[dictionaries enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    [startDate addObject:[obj valueForKeyPath:@"start_date"]];
    [endDate addObject:[obj valueForKeyPath:@"end_date"]];

}];

但是我得到一个错误,说密钥无效。我不明白哪里出了问题。

如果显示的数据是您得到的,那么它就是无效的JSON

在JSON中,键需要被引用,并且键/值对之间需要有逗号:

{"updated_at": 12345555 dates:
    [{"start_date": "2014-03-02", "end_date": "2014-03-02"},
     {"start_date": "2014-04-02", "end_date": "2014-04-02"},
     {"start_date": "2014-05-02", "end_date": "2014-05-02"}]}

如果显示的数据是您得到的,那么它不是有效的JSON

在JSON中,键需要被引用,并且键/值对之间需要有逗号:

{"updated_at": 12345555 dates:
    [{"start_date": "2014-03-02", "end_date": "2014-03-02"},
     {"start_date": "2014-04-02", "end_date": "2014-04-02"},
     {"start_date": "2014-05-02", "end_date": "2014-05-02"}]}

{}
:表示词典

[]
:表示无阵列

 NSArray *dates = [yourJsonData objectForKey:@"dates"];
 for(NSDictionary *data in dates){
    [startDate addObject: [data objectForKey: start_date];
    [endDate addObject: [data objectForKey: end_date];
 }

{}
:表示词典

[]
:表示无阵列

 NSArray *dates = [yourJsonData objectForKey:@"dates"];
 for(NSDictionary *data in dates){
    [startDate addObject: [data objectForKey: start_date];
    [endDate addObject: [data objectForKey: end_date];
 }

您正在尝试枚举
NSDictionary
,而您有
NSArray
。您的
字典
对象应为
NSArray
类型,然后

for(int i = 0; i<dictionaries.count; i++)
{
  [startDate addObject:[obj valueForKeyPath:@"start_date"]];
  [endDate addObject:[obj valueForKeyPath:@"end_date"]];
}

for(int i=0;i当您拥有
NSArray
时,您正在尝试枚举
nsdirectory
。您的
dictionary
对象应为
NSArray
类型

for(int i = 0; i<dictionaries.count; i++)
{
  [startDate addObject:[obj valueForKeyPath:@"start_date"]];
  [endDate addObject:[obj valueForKeyPath:@"end_date"]];
}

用于(int i=0;i他们实际上我的文档尚未更新,但我得到的响应与您上面所写的一样。我将只更新他们他们实际上我的文档尚未更新,但我得到的响应与您上面所写的一样。我将只更新它,转到json.org并学习json语法。学习只需5-10分钟,然后然后事情就变得更有意义了。去json.org学习json语法。学习只需要5-10分钟,然后事情就变得更有意义了。