获取NSCFDictionary子键值

时间:2015-10-13 12:39:20

标签: objective-c json serialization jsonserializer

我正在解析JSON数据,我得到一个像

这样的JSON树
  

2015-10-13 15:29:10.563 JsonProject [29154:1434114] requestReply :(           {           DNumb = 512421421;           DTempData =“”;           DUUID = 12;           Id = 1;       },           {           DTempData =“”;           Id = 2;       },

正如您在此处sub key values所见,我在NSCFDictionary数据下获得了值,但我不知道如何解析它们。我是Objective-c的新手,来自.net,有没有办法解析这些值?

2 个答案:

答案 0 :(得分:0)

以下是你的回应;

equestReply: ( 
    { 
      DNumb = 512421421; DTempData = ""; DUUID = 12; Id = 1;
     },
     { DTempData = ""; Id = 2; 
    })

所以你可以得到如下值;

NSMutableArray* dict = [yourResponseObject  ObjectForKey:"equestReply"];
NSString* = [[dict objectAtIndex:index] valueForKey:"DNumb"];
NSString* = [[dict objectAtIndex:index] valueForKey:"DTempData"];
NSString* = [[dict objectAtIndex:index] valueForKey:"DUUID"];

答案 1 :(得分:0)

首先,您需要将JSON数据转换为NSArray

NSError *jsonError;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&jsonError];

然后你可以使用它的键访问每个值:

NSDictionary *jsonItemDic = jsonArray[0];
NSString *dTempData = [jsonItemDic objectForkey@"DTempData"]; 

P.S。:您发送的样本数据不完整,但您的JSON似乎是一个字典数组。我的答案依赖于这个理论。

更新

从我看到的屏幕截图中,您的数据存储在根字典中。这意味着您的对象的根是一个字典,其中包含一个名为GetVerifiedDevices的键和一个字典数组的值。您可以像这样访问设备数组:

NSArray *devices = [your_json_object objectForKey:@"GetVerifiedDevices"];

然后像这样查询您的设备:

for(NSDictionary *deviceDic in devices){
  NSString *dTempData = [deviceDic objectForkey@"DTempData"]; 
//And others like above
}

干杯。微米。