rt
u59ebvdq1#
为什么要有这个需求?
13z8s7eq2#
因为对象的某个字段是json,输出会被转义
kninwzqo3#
公司有个C/S系统,Client是用的GBK解码,现在Server重构但需要兼容老版本Client,如果不用这个属性的话英文括号之类的会被转义,而客户端会识别为普通文本导致出错。所以我想问是什么原因导致这个属性被Disable的呢?有替代方案吗?
dw1jzc5e4#
同有这个需求
omvjsjqw5#
我的问题不是由于DisableCheckSpecialChar导致的,而是FastJsonConfig默认构造函数中的SerializerFeature.BrowserSecure起的作用,希望对你们有启发。
b5buobof6#
redis 使用的fastjson 作为序列化工具,
也有这种问题,求解决
dgiusagp7#
之前用的1.2.7,由于DisableCheckSpecialChar还有效,正常用的。前几天升到1.2.47,由于DisableCheckSpecialChar失效了,可以设置SerializerFeature.DisableCheckSpecialChar,但不起作用,不应该转义的数据转义了
du7egjpx8#
@wenshao这种就需要不能再转义,否则传给对方怎么都是错的,支持一下以前这个特性吧。或者有没有其它替代方案。我看从1.2.11版本开始就标记 SerializerFeature.DisableCheckSpecialChar。之前用的1.2.7 版本一直没问题,换成了1.2.47。这种数据序列化就有问题
1.2.7 执行结果
1.2.47 执行结果
nbnkbykc9#
有需求
eivgtgni10#
StringEscapeUtils.unescapeEcmaScript(paramData);用这个方法吧,可以去掉反斜杠
vql8enpb11#
有需求,请解决,多次加解密的过程中使用了JSON.toJsonString(),结果多了好多反斜杠,一层层递加反斜杠
{ "code": "0000", "desc": "", "data": "\"\\\"{\\\\\\\"bankUserId\\\\\\\":\\\\\\\"3412691eeaca4e4794a73bed0f59937a\\\\\\\",\\\\\\\"userId\\\\\\\":\\\\\\\"60eec629bc4e4320aaca49df8875bc1a\\\\\\\",\\\\\\\"elecCardNo\\\\\\\":\\\\\\\"4539837594582378\\\\\\\"}\\\"\"" }
6ss1mwsb12#
实测,外面套一个StringEscapeUtils.unescapeJava方法即可去掉转义。
StringEscapeUtils.unescapeJava
import org.apache.commons.lang.StringEscapeUtils; StringEscapeUtils.unescapeJava(JSON.toJSONString(response))
cfh9epnr13#
集成第三方时,比如Springdoc,第三方输出是用 字符串 形式的Json,结果被Fastjson多加了反斜杠,怎么整?
wfsdck3014#
14条答案
按热度按时间u59ebvdq1#
为什么要有这个需求?
13z8s7eq2#
因为对象的某个字段是json,输出会被转义
kninwzqo3#
公司有个C/S系统,Client是用的GBK解码,现在Server重构但需要兼容老版本Client,如果不用这个属性的话英文括号之类的会被转义,而客户端会识别为普通文本导致出错。所以我想问是什么原因导致这个属性被Disable的呢?有替代方案吗?
dw1jzc5e4#
同有这个需求
omvjsjqw5#
我的问题不是由于DisableCheckSpecialChar导致的,而是FastJsonConfig默认构造函数中的SerializerFeature.BrowserSecure起的作用,希望对你们有启发。
b5buobof6#
redis 使用的fastjson 作为序列化工具,
也有这种问题,求解决
dgiusagp7#
之前用的1.2.7,由于DisableCheckSpecialChar还有效,正常用的。
前几天升到1.2.47,由于DisableCheckSpecialChar失效了,可以设置SerializerFeature.DisableCheckSpecialChar,但不起作用,不应该转义的数据转义了
du7egjpx8#
@wenshao
这种就需要不能再转义,否则传给对方怎么都是错的,支持一下以前这个特性吧。或者有没有其它替代方案。
我看从1.2.11版本开始就标记 SerializerFeature.DisableCheckSpecialChar。之前用的1.2.7 版本一直没问题,换成了1.2.47。这种数据序列化就有问题
1.2.7 执行结果
1.2.47 执行结果
nbnkbykc9#
有需求
eivgtgni10#
StringEscapeUtils.unescapeEcmaScript(paramData);用这个方法吧,可以去掉反斜杠
vql8enpb11#
有需求,请解决,多次加解密的过程中使用了JSON.toJsonString(),结果多了好多反斜杠,一层层递加反斜杠
6ss1mwsb12#
实测,外面套一个
StringEscapeUtils.unescapeJava
方法即可去掉转义。cfh9epnr13#
集成第三方时,比如Springdoc,第三方输出是用 字符串 形式的Json,结果被Fastjson多加了反斜杠,怎么整?
wfsdck3014#