小弟愚钝,求大神帮看看这个json用sbjson怎么解析
functionString = [{"TYPE":"打印机",
"CONFIGDATA":
[ {
"DCONF_ID":"207",
"D_FUN":"通电",
"D_TYPE":"zigbee",
"D_VA":"d401",
"D_STATE":"可用"
},
{"DCONF_ID":"208",
"D_FUN":"断电",
"D_TYPE":"zigbee",
"D_VAL":"d400",
"D_STATE":"可用"}]
},
{"TYPE": "电饭煲",
"CONFIGDATA":"NULL"
}]
主要是下面这个null;
SBJsonParser *parser = [[SBJsonParser alloc]init];
NSMutableArray *array = [[NSMutableArray alloc]initWithArray:[parser objectWithString:functionString]];
for(NSMutableDictionary *singleHomAppFunctions in array){
NSMutableArray *arr = [singleHomAppFunctions objectForKey:@"CONFIGDATA"]; //就是这句话我直接用集合接收的话碰到下面CONFIGDATA的“NULL”,就会出错。。。。。。。。大神呀,这咋办呀????、求指导呀!!!!
}
[解决办法]
这是数组格式。很常见的。
我用的是JSONDecoder类来解析的。很简单的。解析方法是这样的
NSDictionary *json = [subjson objectForKey:@"functionString"];
NSArray *responseObject = [json objectForKey:@"CONFIGDATA"];
这样就放到数组里了。如果还不明白,请联系我,我给你写一个demo演示。
[解决办法]
functionString = [{"TYPE":"打印机",
"CONFIGDATA":
你是不是最外全少了""
[解决办法]
NSString *jsonStr = @"{"data":{"count":"14","list":[{"groupName":"我的好友","friendList":[{"name":"Phone1","imagename":"head01"},{"name":"Phone2","imagename":"head02"}]},{"groupName":"同事","friendList":[{"name":"Phone3","imagename":"head03"},{"name":"Phone4","imagename":"head04"},{"name":"Phone4S","imagename":"head05"}]},{"groupName":"我的XX","friendList":[]}]},"mesage":"操作成功","status":"0"}";
这样才可以解析
[解决办法]
NSString *json = @" {"data":{"list":[{"TYPE":"打印机","CONFIGDATA":[ {"DCONF_ID":"207","D_FUN":"通电","D_TYPE":"zigbee","D_VA":"d401","D_STATE":"可用"},{"DCONF_ID":"208","D_FUN":"断电","D_TYPE":"zigbee","D_VAL":"d400","D_STATE":"可用"}]},{"TYPE": "电饭煲","CONFIGDATA":[]}]}}";
NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSDictionary *dataDci = [dic objectForKey:@"data"];
NSArray *dataArr = [dataDci objectForKey:@"list"];
for (NSDictionary *tmpDic in dataArr) {
NSString *type = [tmpDic objectForKey:@"TYPE"];
NSLog(@"tyoe %@",type);
NSArray *arr = [tmpDic objectForKey:@"CONFIGDATA"];
for (NSDictionary *dic in arr) {
NSString *D_STATE = [dic objectForKey:@"D_STATE"];
NSLog(@"D_STATE%@",D_STATE);
}
}
[解决办法]
用这个检验一下,看看json是什么数据格式的
http://json.parser.online.fr/