如何在Array中获取NSDictionary

时间:2016-12-06 06:36:22

标签: objective-c nsarray nsdictionary

我是iOS的新手,我面临着在数组中获取字典的问题。

阵列是这样的:

[{"CheckPointId":41,"AId":4,"CheckPoint":"Check SOP maintained near all equipments and loads","MId":41,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":42,"AId":4,"CheckPoint":"Check Single line diagram (SLD) is maintained in panel area","MId":42,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":43,"AId":4,"CheckPoint":"Check danger notices are maintained at site","MId":43,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":44,"AId":4,"CheckPoint":"Check Rubber mats are maintained infront of the electrical panels","MId":44,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":45,"AId":4,"CheckPoint":"Check the availibility of HT gloves","MId":45,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":46,"AId":4,"CheckPoint":"Check Treatment of Electric shock board is displayed","MId":46,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":47,"AId":4,"CheckPoint":"Check Total connected load details are displayed","MId":47,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":48,"AId":4,"CheckPoint":"Check LOTO is in practice ","MId":48,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":49,"AId":4,"CheckPoint":"Check for Lightning arrestor installed in terrace","MId":49,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":50,"AId":4,"CheckPoint":"Check APFC is maintaining power factor (0.99 - 1.00)","MId":50,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":51,"AId":4,"CheckPoint":"Check for history cards maintained near equipments","MId":51,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":52,"AId":4,"CheckPoint":"Check checklists are maintained up to date and duely signed by site incharge","MId":52,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":53,"AId":4,"CheckPoint":"Check for earthing provided to equipments","MId":53,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":54,"AId":4,"CheckPoint":"Check for exhaust mechansim in the equipment and load section","MId":54,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":55,"AId":4,"CheckPoint":"Check for fire extinguisher in the equipment area","MId":55,"MethodOfMeasure":"Visual Inspection"}]

我使用了这样的代码

NSString *string = [LoginResult valueForKey:@"text"];

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

NSArray *responsearry = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

for(NSDictionary *dict in responsearry) {
    NSLog(@"----dict--%@",dict);
}

但它只给我 0th索引上的第一个值

2 个答案:

答案 0 :(得分:0)

如果要迭代所有for,可以使用Dict循环:

    NSArray *yourArray = [{"CheckPointId":41,"AId":4,"CheckPoint":"Check SOP maintained near all equipments and loads","MId":41,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":42,"AId":4,"CheckPoint":"Check Single line diagram (SLD) is maintained in panel area","MId":42,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":43,"AId":4,"CheckPoint":"Check danger notices are maintained at site","MId":43,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":44,"AId":4,"CheckPoint":"Check Rubber mats are maintained infront of the electrical panels","MId":44,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":45,"AId":4,"CheckPoint":"Check the availibility of HT gloves","MId":45,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":46,"AId":4,"CheckPoint":"Check Treatment of Electric shock board is displayed","MId":46,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":47,"AId":4,"CheckPoint":"Check Total connected load details are displayed","MId":47,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":48,"AId":4,"CheckPoint":"Check LOTO is in practice ","MId":48,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":49,"AId":4,"CheckPoint":"Check for Lightning arrestor installed in terrace","MId":49,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":50,"AId":4,"CheckPoint":"Check APFC is maintaining power factor (0.99 - 1.00)","MId":50,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":51,"AId":4,"CheckPoint":"Check for history cards maintained near equipments","MId":51,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":52,"AId":4,"CheckPoint":"Check checklists are maintained up to date and duely signed by site incharge","MId":52,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":53,"AId":4,"CheckPoint":"Check for earthing provided to equipments","MId":53,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":54,"AId":4,"CheckPoint":"Check for exhaust mechansim in the equipment and load section","MId":54,"MethodOfMeasure":"Visual Inspection"},{"CheckPointId":55,"AId":4,"CheckPoint":"Check for fire extinguisher in the equipment area","MId":55,"MethodOfMeasure":"Visual Inspection"}];

     for(NSDictionary *dict in yourArray)
     {
          NSLog(@"----dict--%@",dict);
     }

如果您希望获得Dictionary特定索引:

  int index = 1;
  NSDictionary *dict = [yourArray objectAtIndex:index];

答案 1 :(得分:0)

你检查你的json字符串是否格式正确吗? 用“\” 喜欢 : {\ “USER1 \”:{\ “鉴定者\”:4,\ “的NID \”:1},\ “用户2 \”:{\ “鉴定者\”:5,\ “的NID \”:1}} < / p>