我试图解析这样一个使用许多数组和字典的json。如何在iOS中解析它?

时间:2016-05-23 09:48:51

标签: ios json nested

我能够解析前三个值。我想解析的dayWiseTimeSheet部分中的嵌套值。

{"TimeSheet":
[
 {"day":"10-5-2016",
 "totalTravelTime":"1.40hrs",
 "totalWorkTime":"6hrs",
 "dayWiseTimeSheet": [{
                      "taskId": "101",
                      "travelingTime": "40 mins",
                      "workingTime": "3 hrs"
                      }, {
                      "taskId": "102",
                      "travelingTime": "1 hr",
                      "workingTime": "3 hrs"
                      }]
 },
 {"day":"11-5-2016",
 "totalTravelTime":"1.40hrs",
 "totalWorkTime":"6hrs",
 "dayWiseTimeSheet": [{
                      "taskId": "101",
                      "travelingTime": "50 mins",
                      "workingTime": "5 hrs"
                      }, {
                      "taskId": "102",
                      "travelingTime": "3 hr",
                      "workingTime": "7 hrs"
                      }]
 }
]
}

我使用的代码是

for (NSDictionary *bpDictionary in books )
{
    TimesheetInfo *tableObject = [[TimesheetInfo alloc]initwithday:
    [bpDictionary objectForKey:@"day"]
    totalTravelTime:[bpDictionary objectForKey:@"totalTravelTime"]
    totalWorkTime:[bpDictionary objectForKey:@"totalWorkTime"]
}

4 个答案:

答案 0 :(得分:1)

请试试这个:

NSMutableArray *allDayWiseTimeSheet = [NSMutableArray new];

for (NSDictionary *bpDictionary in books )
{
    TimesheetInfo *tableObject = [[TimesheetInfo alloc]initwithday:[bpDictionary objectForKey:@"day”]]]
    totalTravelTime:[bpDictionary objectForKey:@"totalTravelTime"]
    totalWorkTime:[bpDictionary objectForKey:@"totalWorkTime"]
    NSArray *dayWiseTimeSheet = [bpDictionary objectForKey:@“dayWiseTimeSheet”];

    for(NSDictionary *info in dayWiseTimeSheet)
    {
        [allDayWiseTimeSheet addObject:info];
        NSLog(@“%@”,[info valueForKey:@“taskId”]);
        NSLog(@“%@”,[info valueForKey:@“travelingTime”]);
        NSLog(@“%@”,[info valueForKey:@“workingTime”]);
    }
}

答案 1 :(得分:0)

将第三个键的值解析为具有任意对象数据类型的数据类型的字典

稍后将数组中的每个对象都放入实体类中。

让dict = response.objectforkey(" dayWiseTimeSheet")

答案 2 :(得分:0)

如果数据是json,也许你必须将json翻译成nsdictionary,那么你可以获得NSarry来收集模型。

答案 3 :(得分:0)

给定JSON数据,以下代码将解析“dayWiseTimeSheet”数据。 json的类型应该是字典而不是数组。

for (id obj in [[json valueForKey:@"TimeSheet"] valueForKey:@"dayWiseTimeSheet"]) {

NSLog(@"%@",[obj valueForKey:@"taskId"]);
NSLog(@"%@",[obj valueForKey:@"travelingTime"]);
NSLog(@"%@",[obj valueForKey:@"workingTime"]);

}