解决json数据的输出带转义符的问题
一、说明
-
编程语言:java
-
参考
https://mvnrepository.com/artifact/org.apache.commons/commons-text
二、记录
- 问题描述:
在对接第三方系统时,返回的json数据输出到控制台后,可以看到带转义字符,并且使用fastjon的
JSON.parseObject(string)
无法直接转换为json对象
- 输出
"{\"ret\":0,\"expires_in\":\"123\",\"refresh_token\":\"45645465465465445\",\"msg\":\"\",\"access_token\":\"123456123456123456\"}"
- 解决方法
// 反转义java字符串
String tokenInfoEsca = StringEscapeUtils.unescapeJava(tokenInfo);
// 去除前后的双引号
tokenInfoEsca = tokenInfoEsca.substring(1, tokenInfoEsca.length() -1);
// 转换为json对象
JSONObject tokenJsonObj = JSON.parseObject(tokenInfoEsca);
其它解决方法:java 的 split 和 replaceAll