2014-02-10 48 views
0

1.I从Web服务得到JSON数据,并将其添加对NSDictionary中GET值不起作用

NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]; 

2.然后我秀 “DIC” 中的NSLog这是目前

{"query": [{"IndexNo": 1,"ID": "01","Picture": "img/food-48.png"}]} 

3 。然后我在新的NSDictionary“DIC”获取数据值“DT”

NSDictionary *dt = [dic objectForKey: @"query"]; 

4.然后我的NSLog显示“DT”这是目前

({ID = 01;IndexNo = 1;Picture = "img/food-48.png";}) 

5.我想从“dt”中获得“ID”。我用这个代码

NSString *ID = [dt objectForKey: @"ID"]; 

,但你可以试试这个

NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]; 
NSArray *arr = [dic objectForKey: @"query"]; 
NSDictionary *dt = arr[0]; 
NSString *ID = [dt objectForKey: @"ID"]; 
+0

是ID的值是否是NSString对象? – LML

回答

1

。注意,这些方括号从第一的NSLog语句的输出:

{"query": [...]} 

试试这个:

NSArray *dtArray = [dic objectForKey: @"query"]; 
NSDictionary *dt = dtArray[0]; 
NSString *ID = [dt objectForKey:@"ID"]; 

或者使用NSDictionary中的和键 - 值编码行为NSArray

NSString *ID = [[dic valueForKeyPath:@"query.ID"] firstObject]; 
0

[dic objectForKey: @"query"]实际上返回一个NSArray它的错误

-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x8a40a60 
0
NSDictionary *dt = [[dic objectForKey: @"query"] objectAtIndex:0]; 
NSString *ID = [dt objectForKey: @"ID"]; 

您正试图从数组中获取键的值。改变这些线。

0

从你jsonStructure

{"query": [{"IndexNo": 1,"ID": "01","Picture": "img/food-48.png"}]} 

对象键“查询”是一个数组为{}是一个字典和[]是一个数组。

NSArray *tempArray = [dt objectForKey:@"query"]; 

    NSDictionary *tempDictionary = [tempArray objectAtIndex:0]; 
    NSString *ID = [tempDictionary objectForKey:@"ID"]; 

希望这会有所帮助。