fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

后台返回出现JSON前边乱码请问怎么解决

Open wxpqxlk opened this issue 1 year ago • 5 comments

请描述您的问题

询问有关本项目的使用和其他方面的相关问题。 image

使用fastJson1.2.83的时候返回的json是正常的,用fastJson2.0.45就出现乱码请问怎处理

wxpqxlk avatar Jan 29 '24 14:01 wxpqxlk

奇怪了哦,你是怎么用的?

wenshao avatar Jan 29 '24 18:01 wenshao

我是用在SpringBoot2.7.18中的消息转换,转换如下: @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { // 清除默认 json 转换器 converters.removeIf(converter -> converter instanceof MappingJackson2HttpMessageConverter);

    // 配置 fastjson2.x 转换器
    FastJsonConfig config = new FastJsonConfig();
    config.setDateFormat("yyyy-MM-dd HH:mm:ss");
    config.setWriterFeatures(
            JSONWriter.Feature.WriteEnumsUsingName, // 序列化enum使用name
            JSONWriter.Feature.BrowserCompatible, // 兼容IE6
            JSONWriter.Feature.WriteNullListAsEmpty, // 将List类型字段的空值序列化输出为空数组"[]"
            JSONWriter.Feature.WriteNullBooleanAsFalse, // 将Boolean类型字段的空值序列化输出为false
            JSONWriter.Feature.WriteLongAsString, // 将Long序列化为String
            JSONWriter.Feature.WriteNullNumberAsZero, // 将数字类型的空序列化为0
            JSONWriter.Feature.BrowserSecure// 浏览器安全,将会’<’ ‘>’ ‘(’ ')'字符做转义输出
    );

    FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
    fastJsonHttpMessageConverter.setFastJsonConfig(config);
    List<MediaType> fastMediaTypes = Arrays.asList(
            MediaType.APPLICATION_JSON,
            MediaType.TEXT_PLAIN,
            MediaType.TEXT_HTML,
            MediaType.TEXT_XML,
            MediaType.APPLICATION_OCTET_STREAM,
            MediaType.APPLICATION_JSON
    );
    fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
    converters.add(fastJsonHttpMessageConverter);
}

用的是apiPost工具进行测试的

wxpqxlk avatar Jan 30 '24 03:01 wxpqxlk

我看你这里并没有配置WriteNulls 为什么会输出一个 null 值的 data, 能不能提供一个简单的可复现 demo

rowstop avatar Jan 30 '24 09:01 rowstop

我用的是apiPost会不会是apiPost这边问题 image 我的微信是18286140095 可以加微信给你远程 太麻烦不好弄demo

wxpqxlk avatar Jan 30 '24 10:01 wxpqxlk

尽量提供一个 demo, 关于是不是 apipost 的问题,你可以换个工具尝试一下

rowstop avatar Feb 01 '24 01:02 rowstop