繁体   English   中英

如何在iOS中解析JSON数据

[英]How to parse JSON data in iOS

我正在以这种格式从服务器获得响应

{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个NSmutableArrays中,我不了解如何执行此操作

我试过了

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"]];

}];

但是我收到错误消息,说密钥无效。 我不明白我要去哪里错了。

{} :表示NSDictionary

[] :表示NSArray

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

您尝试在拥有NSArray枚举NSDictionary 您的dictionaries对象应为NSArray类型,然后

for(int i = 0; i<dictionaries.count; i++)
{
  [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"}]}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM