从JSON响应中提取一个属性

时间:2013-09-22 18:53:40

标签: ios objective-c json nsdictionary nsdata

我对JSON很恐怖。我不明白一件事。我的JSON响应如下所示:

 {
    ID = 1;
    EDate = "<null>";
    SelectedDay = "/Date(-62135596800000)/";
    End = "14.09.2013 15:00:00";
    Start = "14.09.2013 07:00:00";
    SDate = "<null>";
},
    {
    ID = 1;
    EDate = "<null>";
    SelectedDay = "/Date(-62135596800000)/";
    End = "14.09.2013 16:00:00";
    Start = "14.09.2013 07:00:00";
    SDate = "<null>";
},

在NSData和NSDictionary中。我如何循环,例如,每个对象的“结束”属性,并将它们添加到数组?

编辑:

我从这段代码登录:

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:result.data options:kNilOptions error:&error];

    NSLog(@"Response: %@",dict);

,完整的日志是: enter image description here

4 个答案:

答案 0 :(得分:1)

如果您真的需要每个字典中单个键的值数组,那么您可以使用KVC:

NSArray *endValues = [resultsArray valueForKey:@"End"];

- 假设你有一系列字典,并且你的粘贴日志没有显示完整的故事。

如果您需要字典中的多个键/值,那么您最好迭代内容并选择每个项目。您可以使用普通循环或块来查看各种迭代方法。

答案 1 :(得分:1)

使用此:

NSMutableArray *endDatesArray = [NSMutableArray new]; // Here this array will store all end dates
for (int i =0; i < [YOUR_JSONARRAY count]; i++) // Here YOUR_JSONARRAY is the response array you are getting 
{
    NSMutableDictionary *dict= [YOUR_JSONARRAY objectAtIndex:i];
    [endDatesArray addObject:[dict objectForKey:@"End"]];

}

希望它对你有所帮助。

答案 2 :(得分:1)

这个JSON似乎是一个字典数组。试试:

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

for (NSDictionary *dictionary in JSONArray) {

     [endValuesArray addObject:[dictionary valueForKey:@"End"]];

}

其中JSONArray是在NSJSONSerialization之后获得的数组。

答案 3 :(得分:-1)

  • 制作JSON对象的NSArray。
  • 使用FOR循环直到数组的计数为每个数组对象创建一个NSDictionary
  • 使用'objectForKey:@“结束”'来提取End对象。 (在for循环中)