解析来自JSON的响应,ios?
问题描述:
我在我的json中有下面的参数。解析来自JSON的响应,ios?
{
"msg": "success",
"data": [
{
"FNAME": "test",
"LNAME": null,
"STATUS": null,
"MOBILE1": "1234567890",
"show_email": "1",
"Info": [
{
"id": "73307",
"NAME": "demo",
"CONTACT": "",
"WORKING_HOUR1": "[\"09:00 AM\",\"09:15 AM\",\"09:30 AM\",\"09:45 AM\",\"10:00 AM\"]",
"WORKING_HOUR7": "",
"DAY": "[\"Monday\",\"Wednesday\"]"
}
]
}
]
}
我无法理解如何从中获取值。
如果我分析这个我得到错误
NSError *myError = nil;
NSDictionary *res = [NSJSONSerialization JSONObjectWithData:self.responseData options:NSJSONReadingMutableLeaves error:&myError];
NSArray *results = [res objectForKey:@"data"];
NSArray *Info=[results[0] objectForKey:@"Info"];
NSArray *day=clinicInfo[1][@"DAY"];
NSLog(@"%@", day[0]);
错误:
'NSInvalidArgumentException', reason: '-[__NSCFString objectAtIndexedSubscript:
答
编辑:
从您的JSON你想:
NSArray *days = json[@"data"][0][@"Info"][0][@"DAY"]
而且当你的JSON是有效的,天d工作时间不在数组中 - 它们是一个字符串。
你需要这样的事情。
{
"msg": "success",
"data": [
{
"FNAME": "test",
"LNAME": null,
"STATUS": null,
"MOBILE1": "1234567890",
"show_email": "1",
"Info": [
{
"id": "73307",
"NAME": "demo",
"CONTACT": "",
"WORKING_HOUR1": [
"09:00 AM",
"09:15 AM",
"09:30 AM",
"09:45 AM",
"10:00 AM"
],
"WORKING_HOUR7": "",
"DAY": [
"Monday",
"Wednesday"
]
}
]
}
]
}
首先你没有使用有效的JSON。
{
"DAY": [
"Monday",
"Wednesday"
]
}
您可以使用NSJSONSerialization
解析JSON文件,从中你应该得到一个NSDictionary
。
在该字典中,键“DAY”应该有NSArray
,其中包含两个字符串“Tuesday”和“Thursday”的两个对象。
例如。数据是你的JSON文件
NSError *jsonError = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];
if(!jsonError) NSArray *days = json[@"DAY"];
else NSLog(@"Error serialising JSON");
这是无效的JSON – 2014-09-27 13:45:55
你的代码中没有变量叫做“clinicDay [0]”。你的意思是Day [0]? – 2014-09-27 13:46:38
是[0]只有对不起 – WISHY 2014-09-27 13:48:04