2016-12-06 32 views
0

我是iOS的新手,我面临着在数组中获取字典的问题。如何获得阵列内的NSDictionary

数组是这样的:

[{"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指数。

+0

您可以像这样解析字典'for yourArray中的字典'{'dict'是您的解析字典} – PiyushRathi

+0

@PiyushRathi但它只显示值。 – Muju

+0

我们在这里申请循环,这将迭代直到数组中的最后一个字典。 – PiyushRathi

回答

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]; 
+0

我有10个对象在我的array.But当我用你的代码Dict值打印只有5个键/值对。只有一个对象。 – Muju

+0

@Muju你使用For循环? – Dalvik

+0

@Muju cab你发布了你的实际代码? – Dalvik

0

你检查,如果你的JSON字符串结构良好? “\”用户1 \“:{\”Iden \“:4,\”nID \“:1},\”user2 \“:{\”Iden \“:5,\” 与“\” like: “nID \”:1}}

+0

@MararIbragimov它形成得很好。 – Muju

+0

我的意思是它应该被javascript转义: –

+0

@“[{\”CheckPointId \“:41,\”AId \“:4,\”CheckPoint \“:\”检查所有设备和负载附近维护的SOP \ “,”MId“:41,”MethodOfMeasure“:\”Visual Inspection \“},{\”CheckPointId \“:42,\”AId \“:4,\”CheckPoint \“:\”Check单线图(SLD)在面板区域\“,\”MId \“:42,\”MethodOfMeasure \“:\”Visual Inspection \“},{\”CheckPointId \“:43,\”AId \ :4,\“CheckPoint \”:\“检查危险通知在现场维护\”,\“MId \”:43,\“MethodOfMeasure \”:\“Visual Inspection \”}]“ –