特殊字符处理问题

在从第三方接过来的数据中总会有一些奇奇怪怪的字符,而现在数据的传输很多都采用的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 特殊字符处理问题相关推荐

  1. HTML、JS、JSON特殊字符 - JS到HTML特殊字符转换

    JS到HTML特殊字符转换 用JSTL标签显示不转义的字符:<c:out value="<%=nickname %>" escapeXml="false ...

  2. java json特殊字符处理_java json字符串传递给 js 时 特殊字符转义错误 研究

    一些换行 回车等符号需要转义 主要注意 单引号 与双引号. 一 如果js以 双引号接收字符串 则转单引号 "  至 \" 否则js报错 二 如果js以 单引号接收字符串 则转单引号 ...

  3. php json 特殊字符,PHP转义Json里的特殊字符的函数

    在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON.数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要 ...

  4. java处理json特殊字符_如何处理JSON中的特殊字符

    JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换.由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相 ...

  5. JSON特殊字符处理

    1.json结构中使用的标示符:都为英文格式  冒号   :  双引号  ""  大括号 {}  方括号 []  逗号   ,    2.使用注意  要确保在json的结构中,使用 ...

  6. JSON数据传参注释引起的 错误

    背景 Postman body参数传参异常! 问题 报错如下 "Unexpected character ('/' (code 47)): maybe a (non-standard) co ...

  7. JSON.parse解析特殊字符报错解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 具体案例: 页面点击"下一任务" 会去请求后台,这里出现的问题是有虚拟任务的时候.然后会返回一个map,也 ...

  8. json格式的字符串转为json对象遇到特殊字符问题解决

    中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 1 ...

  9. PHP转义Json里的特殊字符的函数

    在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON.数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要 ...

最新文章

  1. tensorflow 使用CPU而不使用GPU的问题解决
  2. 用外观判断论文好坏?这位顶会领域主席的论文被自己的AI审稿系统拒绝了
  3. python中类型错误、计数不采用关键字的错误怎么改_Learning/Python-面试问题.md at master · yxxyyx1314/Learning · GitHub...
  4. Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)
  5. JavaWeb开发中的乱码问题
  6. 深入了解字符集和编码
  7. 湘潭大学计算机考研调剂,2017年湘潭大学硕士研究生调剂信息公告
  8. 记事本编写java_如何使用记事本编写java程序
  9. 【linux学习笔记】红帽Linux 7.8系统在虚拟机上的安装
  10. 微信小程序tabbar消失_微信小程序tabbar不显示解决办法
  11. QThread: Destroyed while thread is still running的处理方法
  12. mybatisPlus笔记
  13. siteserver/sscms 首页新闻排版及代码(二)
  14. 微软dpm服务器,使用 DPM 的 ReFS 卷在服务器中Windows Server 2016
  15. mysql mpp_MPP调研
  16. windows常用命令及相关命令
  17. kvm线程-005-线程状态-THREAD_JUST_BORN
  18. (转)业务知识_电子商务知识
  19. CAD高版本转低版本的方法有哪些?你一定用的到哦
  20. E+H 超声波液位计FMU40-ARD2A2 应用优势及应用领域

热门文章

  1. 音视频,我来了,入坑
  2. 企业私有云Owncloud(1)--介绍
  3. IBM的AI医疗走进死胡同:想用NLP解决医学问题,连Bengio也不看好
  4. 关于智慧医疗新体系建设方向
  5. 怎么做好管综深化设计?高效就靠它
  6. PeakVue 振动分析技术
  7. 移动硬盘数据恢复软件丢失如何找回
  8. ios系统 越狱系统还原[平刷]
  9. GoldenDict词典下载安装
  10. 在线升级FlashPlayer和GoogleChrome的bash脚本