欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

解决 MySQL 字段保存 JSON 并返回带有转义字符的前端解析的问题。

最编程 2024-04-28 11:30:54
...

1、前提

在项目中遇到一个情况,需要将一个对象序列化成JSON String存进Mysql中的某一个字段。首先就是需要用到JSON转化的工具类,这里我用的是fastjson,当然也可以用其他工具类(ps:google的Gson)。第二步就是将对象进行序列化了JSON.toJSONString(对象)。到目前为止都非常正常,查看在数据库中的内容也是正常的JSON格式,但是在我将结果返回给前端时却发现整个JSON被加上了转义,导致前端无法直接通过对象获取内容。

2、解决

当然这里也有很多解决方法

  1. 利用fastjson中@JsonRawValue(推荐
    在需要解析的字段上加上@JsonRawValue即可解析出无转义符号的JSON
public class Test{

    @ApiModelProperty("JSON拓展信息返回")
    @JsonRawValue
    private String expand;

   // 省略...
}
  1. 后端去除转义字符
import org.apache.commons.lang.StringEscapeUtils;

String s1="{\"userId\":1,\"username\":"张三",\"age\":18}";
 
String s2 = StringEscapeUtils.unescapeJava(s1);
// 结果 {"userId":1,"username":"张三","age":18}
  1. 前端利用replacet替换转义字符

3、结尾

根据以上三种方法,最推荐第一种(方便快捷),当然达到想要的效果还有很多种方法,这里就不多做赘述啦有心的小伙伴可以自行去发现也可以在评论区和我交流一下,让我也学习一下哈哈哈。就酱

原文地址:https://www.cnblogs.com/z-coding/p/14470819.html

推荐阅读