首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

小弟愚钝,求大神帮看看这个json用sbjson如何解析

2014-01-01 
小弟愚钝,求大神帮看看这个json用sbjson怎么解析functionString [{\TYPE\:\打印机\,\CONFIGDATA\:

小弟愚钝,求大神帮看看这个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/

热点排行