rt
为什么要有这个需求?
因为对象的某个字段是json,输出会被转义



公司有个C/S系统,Client是用的GBK解码,现在Server重构但需要兼容老版本Client,如果不用这个属性的话英文括号之类的会被转义,而客户端会识别为普通文本导致出错。所以我想问是什么原因导致这个属性被Disable的呢?有替代方案吗?
同有这个需求

我的问题不是由于DisableCheckSpecialChar导致的,而是FastJsonConfig默认构造函数中的SerializerFeature.BrowserSecure起的作用,希望对你们有启发。
redis 使用的fastjson 作为序列化工具,

也有这种问题,求解决
之前用的1.2.7,由于DisableCheckSpecialChar还有效,正常用的。
前几天升到1.2.47,由于DisableCheckSpecialChar失效了,可以设置SerializerFeature.DisableCheckSpecialChar,但不起作用,不应该转义的数据转义了
@wenshao
这种就需要不能再转义,否则传给对方怎么都是错的,支持一下以前这个特性吧。或者有没有其它替代方案。
我看从1.2.11版本开始就标记 SerializerFeature.DisableCheckSpecialChar。之前用的1.2.7 版本一直没问题,换成了1.2.47。这种数据序列化就有问题

1.2.7 执行结果

1.2.47 执行结果

有需求
StringEscapeUtils.unescapeEcmaScript(paramData);用这个方法吧,可以去掉反斜杠
有需求,请解决,多次加解密的过程中使用了JSON.toJsonString(),结果多了好多反斜杠,一层层递加反斜杠
{
"code": "0000",
"desc": "",
"data": "\"\\\"{\\\\\\\"bankUserId\\\\\\\":\\\\\\\"3412691eeaca4e4794a73bed0f59937a\\\\\\\",\\\\\\\"userId\\\\\\\":\\\\\\\"60eec629bc4e4320aaca49df8875bc1a\\\\\\\",\\\\\\\"elecCardNo\\\\\\\":\\\\\\\"4539837594582378\\\\\\\"}\\\"\""
}
实测,外面套一个StringEscapeUtils.unescapeJava方法即可去掉转义。
import org.apache.commons.lang.StringEscapeUtils;
StringEscapeUtils.unescapeJava(JSON.toJSONString(response))
集成第三方时,比如Springdoc,第三方输出是用 字符串 形式的Json,结果被Fastjson多加了反斜杠,怎么整?