json转义问题(消除反斜杠及{}外面多余的“)
程序员文章站
2022-03-26 21:22:31
使用fastjson的Json.toJsonString()方法时出现多余反斜杠{"data":"{\"models\":[{\"name\":\"test\",\"id\":1}],\"table\":\"ws\"}","option":"add"}使用 StringEscapeUtils.unescapeJavaScript(jsDataStr) 解决!!!import org.apache.commons.lang.StringEscapeUtils;String jsonStr.....
-
使用fastjson的Json.toJsonString()方法时出现多余反斜杠
{"data":"{\"models\":[{\"name\":\"test\",\"id\":1}],\"table\":\"ws\"}","option":"add"}
-
使用 StringEscapeUtils.unescapeJavaScript(jsDataStr) 解决!!!
import org.apache.commons.lang.StringEscapeUtils; String jsonStr = StringEscapeUtils.unescapeJavaScript(str);
结果如下:
{"data":"{"models":[{"name":"test","id":1}],"table":"ws"}","option":"add"}
-
补充:消除{}两边多余的“
问题描述:map等包含String字符串值的数据结构在转成json时,如果String串原本是两边带有{}的,有时会出现大括号两边有额外的"",这样在json转化的时候会报格式转化错误,需要把{}两边多余的""先去掉在转化,因此写一个简单的工具类如下来实现:
import org.apache.commons.lang.StringEscapeUtils; /** * @Author: fenghao * @Description: string和json之间转化用到的工具类 * @Date: 2020/7/15 9:33 **/ public class StringJsonUtils { /** * 工具类,提供私有构造 */ private StringJsonUtils() { } /** * @description: 把原生的带有json内容的字符串去掉多余的转移符号,并把有可能多余 * 的{}两边的""去掉 * @author: fenghao * @date: 2020/7/15 10:49 * @param json 原生的带有json内容的字符串 * @return: java.lang.String */ public static String getFormatJsonString(String json) { //先去除多余的转义符号 json = StringEscapeUtils.unescapeJavaScript(json); //map等其他类型把String类型的值转成json的容易在{}外面有引号,会导致转换出错 //去掉{}两边的引号{}需要\\进行转义,"需要\进行转义 json=json.replaceAll("\"\\{", "\\{"); json=json.replaceAll("\\}\"", "\\}"); return json; } }
本文地址:https://blog.csdn.net/spec_king/article/details/107340619