iOS-打印 JSON 数据原格式

作者: 一位不愿透露姓名的王先生_ | 来源:发表于2016-12-15 22:05 被阅读5446次

    痛点

    实际开发过程中,从网络上拿到的数据,再控制台打印输出时,格式是以下形式的:

    {
        error = {
            errorCode = 10002;
            errorMessage = "Appkey is missing. (\U65e0appkey\U53c2\U6570)";
        };
        status = ERROR;
    }
    

    存在着以下几点问题

    • 双引号" "缺失
    • unicode编码没有显示中文
    • 当有数组情况时候,数组的中括号[ ]--->变成可恶的圆括号了( )

    解决办法

    • 写一个NSDictionaryCategory
    • 分类里重写方法- (NSString *)descriptionWithLocale:(id)locale
    - (NSString *)descriptionWithLocale:(id)locale {
    
        NSString *string;
        
        @try {
            
            string = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding];
            
        } @catch (NSException *exception) {
            
            NSString *reason = [NSString stringWithFormat:@"reason:%@",exception.reason];
            string = [NSString stringWithFormat:@"转换失败:\n%@,\n转换终止,输出如下:\n%@",reason,self.description];
            
        } @finally {
            
        }
        
        return string;
    }
    
    • 返回数据打印样式
    {
        "status" : "ERROR",
        "error" : {
            "errorMessage" : "Appkey is missing. (无appkey参数)",
            "errorCode" : 10002
        }
    }
    
    • 解析结果

    使用方法

    HQLogHelper导入到你的项目中,然后直接运行即可。


    Demo

    GitHubHQLogHelper


    参考:

    相关文章

      网友评论

      • 李盛民:嗯,估计使用上会方便很多,但是你想没有想过,你这个为什么使用NSDic的扩展,而不是NSString的扩展呢~个人认为方法名称需要更佳斟酌,而且id这个东西最好不要出现了好吧~真的令人十分困惑!
        李盛民:直觉上觉得不应该使用Dic的扩展,因为毕竟属于string.init的范畴的东西,所以应该使用sting的扩展,而传参的修饰类型为id,那你想没有想过,如果我穿入个Data,或者其他类型的参数这个函数还能很好的工作么?我觉得解决这个就算是优化了。
        一位不愿透露姓名的王先生_:那您有没有优化的方法?我愿请教下!
      • FR_Zhang:直接用json格式化工具就好
        FR_Zhang:@亦庄_吴彦祖 打印出来的本来就是展示的 既然如此 专业的json解析软件或者插件会更好 当然 这个不能说是不好的 只是实用性不大
        一位不愿透露姓名的王先生_:@FR_Zhang 可是Xcode控制台打印输出的不是json原始格式啊?
      • 吾名唐宋:没什么用
        一位不愿透露姓名的王先生_:@卧槽这个昵称666 什么意思?不好用吗?还是你不习惯用这个???
      • 壹点微尘:学习了
        一位不愿透露姓名的王先生_:@壹点微尘 共同进步 :stuck_out_tongue_closed_eyes:

      本文标题:iOS-打印 JSON 数据原格式

      本文链接:https://www.haomeiwen.com/subject/stigmttx.html