NSJSONSerialization 抛出异常 - “Garb

作者: a18bbfaeae63 | 来源:发表于2015-01-10 17:52 被阅读3265次
    garbage.png

    在使用NSJSONSerialization API转换NSData([JSONStr dataUsingEncdoing:NSUTF8ENCODING]),通常只要JSONStr 字符串格式正确,我们就可以轻松转换格式,NSString to NSDictionary.
    如果不确定自己的JSON字符串是否正确,可以尝试google "json在线解析器"

    常在河边走,哪有不湿鞋

    笔者就遇到个蛋疼的问题:在转JSON, 抛出了"Garbage at End"错误,中文意思大概是“末尾有垃圾”,意思是含有JSON转换无法识别的字符。(JSON格式验证是没问题的)
    经过笔者一阵折腾(stackoverflow),最终还是找到了解决方案,原因是 因为我的字符串是加密过的,导致解密后的数据加了一些 “操作符”
    http://baike.baidu.com/view/1112575.htm
    ACSII编码中有个32个操作符

    解决方案:
    1.如果是data,先将DATA装成String,采用NSUTF8StringEncoding(系统提供的枚举貌似都可以,因为不是中文),然后看第二步
    2.如果是NSString
    yourStr =[yourStr stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
    这时候所有控制符都会被替换成空字符。
    接着将yourStr转化成NSData(注意跟你第一步你所用的编码格式需要相同),然后再进行NSJSONSerialization 操作!

    --EOF--
    若无特别说明,本站文章均为原创,转载请保留链接,谢谢

    相关文章

      网友评论

      • Lazyloading:还是不行啊 搞了半天了好气啊
      • NSGhoul:完美解决 感谢大佬
      • 16f854ea6f11:帮了大忙,谢谢大神🙏
      • feng_dev:还是不行呢,大神求助
        log str 有值 解析成 dic 就是 null ,报错 garbage at end
      • himyfairy:请问为什么会出现这样的情况呢?我在做的项目也出现了这样的问题,是因为升级了Xcode的原因么

      本文标题:NSJSONSerialization 抛出异常 - “Garb

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