json 特殊字符处理问题
特殊字符处理问题
在从第三方接过来的数据中总会有一些奇奇怪怪的字符,而现在数据的传输很多都采用的json格式,对特殊字符的处理,还有生僻字的处理是我们在处理报文中必须要面对的问题,选择一个好的处理库可以减少很多麻烦事。
JSON串和Object常见转换方式
五种常见的处理方式。
Json-Lib
<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version>
</dependency>
Org.Json
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20200518</version>
</dependency>
Jackson
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.12.0-rc1</version>
</dependency>
Fastjson
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.73</version>
</dependency>
Gson
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version>
</dependency>
fastjson不支持unicode
在系统间通讯传输的时候现在普遍是json的格式,阿里的fastjson应该是用的比较多的,这回是碰上了unicode的特殊字符。fastjson的处理是将其转义,成为 \u…
这样在传输到其他系统的时候就转义不回来了,串里判断不出来对应的转义字符。但是直接给过滤也不行啊,unicode那么多,不能都把特殊字符给过滤一遍吧
fastjson给转义后的字符串:
unicode 字符集查看
https://www.qqxiuzi.cn/zh/unicode-zifu.php
最终处理
换成Gson了
Gson gson = new Gson();
System.out.println(gson.toJson(map));
原样传送,不带更改
序列化null值问题
json转换方式中默认都不会对null值进行处理,即为null的对象序列化一下就没有对应的key了。
fastjson
JSON.toJSONString(Object object, SerializerFeature.WriteMapNullValue)
其他null值的参数
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为"",而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
Gson
Gson gson = new GsonBuilder().serializeNulls().create();
json 特殊字符处理问题相关推荐
- HTML、JS、JSON特殊字符 - JS到HTML特殊字符转换
JS到HTML特殊字符转换 用JSTL标签显示不转义的字符:<c:out value="<%=nickname %>" escapeXml="false ...
- java json特殊字符处理_java json字符串传递给 js 时 特殊字符转义错误 研究
一些换行 回车等符号需要转义 主要注意 单引号 与双引号. 一 如果js以 双引号接收字符串 则转单引号 " 至 \" 否则js报错 二 如果js以 单引号接收字符串 则转单引号 ...
- php json 特殊字符,PHP转义Json里的特殊字符的函数
在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON.数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要 ...
- java处理json特殊字符_如何处理JSON中的特殊字符
JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换.由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相 ...
- JSON特殊字符处理
1.json结构中使用的标示符:都为英文格式 冒号 : 双引号 "" 大括号 {} 方括号 [] 逗号 , 2.使用注意 要确保在json的结构中,使用 ...
- JSON数据传参注释引起的 错误
背景 Postman body参数传参异常! 问题 报错如下 "Unexpected character ('/' (code 47)): maybe a (non-standard) co ...
- JSON.parse解析特殊字符报错解决方案
2019独角兽企业重金招聘Python工程师标准>>> 具体案例: 页面点击"下一任务" 会去请求后台,这里出现的问题是有虚拟任务的时候.然后会返回一个map,也 ...
- json格式的字符串转为json对象遇到特殊字符问题解决
中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 1 ...
- PHP转义Json里的特殊字符的函数
在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON.数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要 ...
最新文章
- tensorflow 使用CPU而不使用GPU的问题解决
- 用外观判断论文好坏?这位顶会领域主席的论文被自己的AI审稿系统拒绝了
- python中类型错误、计数不采用关键字的错误怎么改_Learning/Python-面试问题.md at master · yxxyyx1314/Learning · GitHub...
- Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)
- JavaWeb开发中的乱码问题
- 深入了解字符集和编码
- 湘潭大学计算机考研调剂,2017年湘潭大学硕士研究生调剂信息公告
- 记事本编写java_如何使用记事本编写java程序
- 【linux学习笔记】红帽Linux 7.8系统在虚拟机上的安装
- 微信小程序tabbar消失_微信小程序tabbar不显示解决办法
- QThread: Destroyed while thread is still running的处理方法
- mybatisPlus笔记
- siteserver/sscms 首页新闻排版及代码(二)
- 微软dpm服务器,使用 DPM 的 ReFS 卷在服务器中Windows Server 2016
- mysql mpp_MPP调研
- windows常用命令及相关命令
- kvm线程-005-线程状态-THREAD_JUST_BORN
- (转)业务知识_电子商务知识
- CAD高版本转低版本的方法有哪些?你一定用的到哦
- E+H 超声波液位计FMU40-ARD2A2 应用优势及应用领域