chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确

news/2025/1/23 12:16:28/

问题描述

chrome游览器又一款JSON插件叫JSON Formatter,游览器GET请求调用接口时,如果返回的数据是json格式,则会自动格式化展示,类似这样:
https://www.chengpei.top/upload/thumbnails/2025/w800/<a class=jsonview.png" />
但是今天突然发现怎么也格式化不了,打开一个json文件倒是可以格式化,但是请求接口返回json就是无法格式化

问题原因

反复卸载重装插件都没有解决,所以想到会不是接口返回的数据有问题,排查发现接口返回的Response Headers中content-type是 text/html,这就不对劲了,按理说springboot项目Controller只要用了@RestController注解,返回实体对象的话,content-type应该默认就是application/json才对,这里居然不对

解决方案

既然返回的Content-Type不对,这里最简单的方案

@GetMapping(value = "/pageQuery/{apiPostfix}", produces = "application/json;charset=UTF-8")

@GetMapping注解里加上produces属性配置为指定的,实测确实可以解决

但是springboot项目Controller只要用了@RestController注解,返回实体对象的话,content-type应该默认就是application/json才对,这里一定是哪里出了问题才会有变化,经过排查发现在公司的依赖库里找到这么个类
https://www.chengpei.top/upload/webconfig.png
其中46行添加了一个FastJson的消息转换器,而且没有设置setSupportedMediaType属性,这里默认指是*/*,导致了后续返回数据时出了问题。

这里要注意在添加FastJsonHttpMessageConverter时要设置SupportedMediaTypes

converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON_UTF8));

或者干脆不要用FastJsonHttpMessageConverter了,一般MappingJackson2HttpMessageConverter已经完全够用了,引入这么个消息转换器不知道哪天又出什么BUG


http://www.ppmy.cn/news/1565481.html

相关文章

区块链的数学基础:核心原理与应用解析

引言 区块链技术作为分布式账本系统&#xff0c;成功地解决了传统中心化系统中的信任问题。其背后隐藏着复杂而精妙的数学原理&#xff0c;包括密码学、哈希函数、数字签名、椭圆曲线、零知识证明等。这些数学工具不仅为区块链提供了安全保障&#xff0c;也为智能合约和去中心…

主站集中式和分布式的配电自动化系统区别在哪里?各适用于什么场所?一文详解

一、主站集中式与分布式配电自动化系统的区别 主站集中式和分布式的配电自动化系统在多个方面存在明显区别&#xff0c;具体如下&#xff1a; 系统结构&#xff1a;主站集中式配电自动化系统采用的是一种集中式的架构&#xff0c;所有的配电终端设备&#xff08;如 FTU、DTU 等…

基于深度学习的Lidar 3D点云表面缺陷检测方法

1. 点云缺陷检测 三维点云异常检测旨在从训练集中检测异常数据点&#xff0c;常用的点云异常检测方法通常采用多个特征记忆库来完全保留局部和全局表示&#xff0c;这种要考虑高昂的计算复杂度和特征间的不匹配问题。 2.实现方法 当前的异常检测方法大多是无监督的&#xff…

matlab构造线性相位FIR滤波器

文章目录 前言一、构造一组声音二、采用FIR滤波器做频率筛选 前言 用生成的一组音频文件举例 一、构造一组声音 模拟钢琴音乐&#xff0c;采用逐渐衰减振荡的正弦波 FFT的频域展示&#xff1a; 源代码&#xff1a; function sound_firFs 1000; % 采样频率freq [200, 230…

STM32CubeIDE使用笔记(一)

IDE 窗口布局介绍 《STM32MP1 M4裸机CubeIDE开发指南》第四章 STM32CubeIDE的使用 - 知乎 1.恢复IDE窗口默认布局 2.Packages Manager 3.Generate Code &#xff1a;ctrls 或Pro>G C 4.编译工程

AF3 ConditionedTransitionBlock类源码解读

ConditionedTransitionBlock类的核心功能是对输入特征进行非线性变换,并通过条件输入(s)自适应地调整特征的表示。 主要模块包括: 自适应层归一化(ada_ln):用于动态调整特征分布。两组线性变换(hidden_gating_linear 和 hidden_linear):用于构造特征空间中的非线性变…

AI对齐与开源发展:多学科融合创新之路

标题&#xff1a;AI对齐与开源发展&#xff1a;多学科融合创新之路 文章信息摘要&#xff1a; 本文分析了AI对齐研究中多学科融合的重要性及开源AI领域的最新发展。文章指出&#xff0c;AI对齐问题需要计算机科学与社会选择理论等学科深度结合&#xff0c;特别是在RLHF领域的应…

Anthropic 正计划为其聊天机器人 Claude 推出“双向语音模式”和一个新的记忆功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…