iOS开发NSLog打印json数据

开发中需要处理大量 json 数据,有时候后台开发人员修改了服务器,没有及时更新文档.
我们需要根据后台给的真实数据来处理业务.
数据量小的时候还好,但是数据量大的话 就需要图形工具来查看结构.
xCode的NSLog输出的数据不能直接 在工具上转换。

这个分类就是解决这个问题而来的!
废话不多说!
直接上代码

创建一个 NSObject 的分类 分别在.h .m文件申明 实现这个方法 调用 就OK

-(void)fb_descriptionJson:(NSDictionary *)dicM callBack:(void(^)(NSString * logMessage))callBack
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSString *logString;
        @try {
            logString=[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:dicM options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding];
            callBack ? callBack(logString) : nil;
        } @catch (NSException *exception) {
            NSString *reason = [NSString stringWithFormat:@"reason:%@",exception.reason];
            logString = [NSString stringWithFormat:@"转换失败:\n%@,\n转换终止,输出如下:\n%@",reason,self.description];
        } @finally {
            
        }
    });
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSDictionary *dict = @{@"title":@"标题",@"content":@"测试",@"arr":@{@"title":@"标题",@"content":@"测试打印"}};
    [self fb_descriptionJson:dict callBack:^(NSString * _Nullable logMessage) {
        NSLog(@"%@",logMessage);
    }];
}

输出结果
 {
  "title" : "标题",
  "content" : "测试",
  "arr" : {
    "title" : "标题",
    "content" : "测试打印"
  }
}

参考文章如下:iOS-打印 JSON 数据原格式
具体代码可以查看我的一个 oc语法糖库 FBObjcSugar
NSObject+FBLogJsonSugar.h 文件

你可能感兴趣的:(iOS开发NSLog打印json数据)