美文网首页工作生活
NSJSONSerialization 抛出异常 - “Garb

NSJSONSerialization 抛出异常 - “Garb

作者: 海浪萌物 | 来源:发表于2019-07-01 10:38 被阅读0次

原文链接:https://www.jianshu.com/p/c94ec3b2e1d8

在使用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 操作!

作者:奸人坚
链接:https://www.jianshu.com/p/c94ec3b2e1d8
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关文章

  • NSJSONSerialization 抛出异常 - “Garb

    在使用NSJSONSerialization API转换NSData([JSONStr dataUsingEncd...

  • NSJSONSerialization 抛出异常 - “Garb

    原文链接:https://www.jianshu.com/p/c94ec3b2e1d8 在使用NSJSONSeri...

  • 异常抛出

    本章主要内容 用try语句捕获异常 常见异常处理 用raise 和assert抛出异常 自定义异常 常用异常名 总...

  • 抛出异常

    在方法执行的时候,遇到不匹配的地方,加入异常抛出机制,可以清晰的知道异常点,并很好的解决。 throw new E...

  • 抛出异常

  • 抛出异常

    MSSQL 在存储过程中进程会处理一些逻辑性的错误,如:将RMB转换为USD时,没有查询到想要的汇率 这个时候最好...

  • 异常抛出

    异常抛出之 Throw 抛出一个已知异常 打印效果: 从打印结果来看,一旦发生异常后面的逻辑就不会执行了。 Cat...

  • jvm如何处理异常

    异常分类 抛出异常 显示 throw手动抛出y异常 隐示 java虚拟机碰到无法继续执行的异常状态,自动抛出异常 ...

  • 子类继承父类方法

    父类方法抛出异常,子类继承父类,重写父类方法时,抛出的异常“子类抛出的异常类型不能比父类抛出的异常类型更宽泛”。 ...

  • [转]构造函数、析构函数抛出异常的问题

    构造函数、析构函数抛出异常的问题 抛出异常1.1 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用...

网友评论

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

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