当前位置: 首页 > news >正文

spring.HttpMessageNotReadableException: JSON parse error

实体类如下:

@Value
public class Search{//搜索内容String value;//是否模糊搜索boolean fuzzy = true; //其实这样写并不是“默认”模糊搜索,而是“一定是”模糊搜索
}

spring.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of com.erato.xxx.Student (although at least one Creator exists): cannot deserialize from Object value (no-delegate- or property based Creater); nested exception is com.fastetxml.jackson.databind.exc.MismatchedInputException: …

去网上一搜,全都在说没有是因为没有空参构造器 NoArgsConstructor。实际上这只是表面。 有时候即使没有空参构造器也无所谓。

上面情况的问题在于,@value 会给两个成员变量 member field 都加上 final.

首先明确一下 java 基础知识点:如果 class 里只有两个 final 的成员变量 member field. 那 空参 和 全参 两个构造器是没法共存的。
空参会警告告诉你给 member field 赋初值(其实不能叫初值,该叫‘永久值’),

@Value
@NoArgsConstructor
public class Search{String value; //报错,Variable 'value' might not have been initializedboolean fuzzy = true;
}

全参 会警告告诉你不要给 member field 赋初值。

@Value
@AllArgsConstructor
public class Search{String value = ""; boolean fuzzy = true;public Student(String value, boolean fuzzy){this.value = value;//报错 cannnot assign a value to final variable 'value'this.fuzzy = fuzzy;}
}

情况1

我们来看看让实体类有 no args constructor.

实体类如下:

@Value
@NoArgsConstructor
public class Search{String value = "";boolean fuzzy = true;
}

为了编译 compile 不爆红我们只好这样。
其实这样写等于白写了,连搜索内容都是写死的你想想,啥功能都没实现。不管你前端传啥,后端的实例 instance 都永远是是 Student (value=, fuzzy=true). 我们就只先做实验,非得这么写。会发生什么呢?

前端传参:

{"value":"abc","fuzzy":true
}

能通过,但没什么用。

情况2

@Value
Student {String value;boolean fuzzy;public Student(String value, boolean fuzzy) {this.value = value;this.fuzzy = fuzzy;}
}

前端:

{"value":"abc","fuzzy":true
}

此时并没有空参构造器,但并没有报这个错。可见那些抄来抄去的文章是多么的没价值。

情况3

@AllArgsConstructor 是非常智能的。事实上它并不是“全参构造器”的意思!! 假设一个赋值了一个没赋值:

@Value
@AllArgsConstructor
Student {String value;boolean fuzzy = true;public Student(String value, boolean fuzzy) {this.value = value;this.fuzzy = fuzzy;}
}

ctrl+F12 我们会看到只添了一个构造方法 , **Student(String value).
**
你前端不管传几个都会报错:

spring.HttpMessageNotReadableException: JSON parse error: Cannot construct …

相关文章:

spring.HttpMessageNotReadableException: JSON parse error

实体类如下: Value public class Search{//搜索内容String value;//是否模糊搜索boolean fuzzy true; //其实这样写并不是“默认”模糊搜索,而是“一定是”模糊搜索 }spring.HttpMessageNotReadableException: JSON parse error: Cannot construct ins…...

安全中间件的设计思路和简单实践

rasp 的侵入式特性和拦截特性导致开发和运维普通不太愿意配合,当生产环境出现问题时往往第一时间先把责任推给 rasp,逐渐的安全部门普遍只能把 rasp 设置为告警模式,而且越是大的集群拦截开的就越少,所以字节的 elkeid 和某外卖大…...

试卷扫描成电子版方法分享,这个方法不要错过

很多时候,为了方便传输我们需要将试卷扫描成电子版进行存档,以备不时之需。很多小伙伴如果遇到试卷需要扫描转成电子版可能就不知道该如何操作了,其实试卷扫描是一项非常重要的工作,因此需要注意一些方法和细节。以下是试卷扫描成…...

【PostgreSQL的CLOG解析】

同样还是这张图,之前发过shared_buffer和os cache、wal buffer和work mem的文章,今天的主题是图中的clog,即 commit log,PostgreSQL10之前放在数据库目录的pg_clog下面。PostgreSQL10之后修更名为xact,数据目录变更为pg_xact下面&…...

腾讯云国际站代充-阿里云ECS怎么一键迁移到腾讯云cvm?

今天主要来介绍一下如何通过阿里云国际ECS控制台一键迁移至腾讯云国际CVM。腾讯云国际站云服务器CVM提供全面广泛的服务内容。无-需-绑-定PayPal,代-充-值腾讯云国际站、阿里云国际站、AWS亚马逊云、GCP谷歌云,官方授权经销商!靠谱&#xff0…...

东方晶源亮相第十一届半导体设备年会,共话发展“芯”机遇

8月11日,以“协力同芯抢机遇,集成创新造设备”为主题的第十一届(2023年)中国电子专用设备工业协会半导体设备年会暨产业链合作论坛(CSEAC)在无锡太湖国际博览中心圆满闭幕。为期3天的CSEAC,通过…...

git修改历史commit信息

修改历史提交 commit 的信息 操作步骤: git rebase -i 列出 commit 列表找到需要修改的 commit 记录,把 pick 修改为 edit 或 e,:wq 保存退出修改 commit 的具体信息git commit --amend,保存并继续下一条git 4. 4. rebase --cont…...

基于K8S环境部署Dolphinscheduler及简单应用

一、Dolphinscheduler简介 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用…...

Linux的ln命令

ln是link的缩写,在Linux中 ln 命令的功能是为某一个文件在另外一个位置建立一个同步的链接,当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录&#xff0…...

深入了解Bear Necessities Hackathon黑客松的优胜者们

生态系统中的资深建设者皆知道Moonbeam是大型黑客松狂热爱好者,不论是线上虚拟的还是现场的。然而,很少有黑客松能达到Moonbeam和AWS举办的Bear Necessities黑客松这样的规模和吸引力。本次黑客松共有755人参与,共提交了62份参赛作品。其中22…...

mysql-tokudb使用qa

一、使用前提 安装tokudb引擎的前提条件是物理机要关闭大页,并需要注意物理机所剩内存和配置文件中tokudb_cache_size(内存主要占用部分),innodb_buffer_pool_size的使用,另外tokudb的安装一定要安装libjemalloc依赖&…...

对比学习论文综述总结

第一阶段:百花齐放(18-19中) 有InstDisc(Instance Discrimination)、CPC、CMC代表工作。在这个阶段方法模型都还没有统一,目标函数也没有统一,代理任务也没有统一,所以说是一个百花齐放的时代 1 判别式代理任务---个体判别任务 1.1 Inst Dict---一个编码器+一个memory…...

【BASH】回顾与知识点梳理(二十三)

【BASH】回顾与知识点梳理 二十三 二十三. Linux 账号管理(二)23.1 账号管理新增与移除使用者: useradd, 相关配置文件, passwd, usermod, userdelusermoduserdel 23.2 用户功能(普通用户可使用)idfingerchfnchsh 23.3…...

用 Python 写一个 NoSQL 数据库

NoSQL 这个词在近些年正变得随处可见. 但是到底 “NoSQL” 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Python (我比较喜欢叫它, “轻结构化的伪代码”) 写一个 NoSQL 数据库来回答这些问题. OldSQL 很多情况下, SQL 已经成为 “数据库” (database)…...

Spring Security自定义登陆界面和密码验证逻辑

maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> 创建配置文件处理跳转拦截等功能以及密码比对功能 package com.example.demo2.demos.web1;…...

Android布局【LinearLayout】

文章目录 常见属性orientation的选择项解释项目结构主要代码 常见属性 orientation&#xff1a;布局中组件的排列方式gravity&#xff1a;控制组件所包含的子元素的对齐方式&#xff0c;可多个组合layout_gravity&#xff1a;控制该组件在父容器里的对齐方式background&#x…...

搭建grafana+loki+promtail日志收集系统

准备工作 下载地址 https://github.com/grafana/loki/releases 安装包放在服务器目录&#xff1a;/opt wget https://github.com/grafana/loki/releases/download/v2.4.2/loki-linux-amd64.zip wget https://github.com/grafana/loki/releases/download/v2.4.2/promtail-lin…...

Electron+vue3项目使用SQLite3数据库

SQLite 是一个进程内的库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库不一样&#xff0c;我们不需要在系统中配置。 就像其他数据库&#xff0c;SQLite 引擎不是一个独立的进程&am…...

SpringSpringBoot常用注解

目录 一、核心注解二、Spring Bean 相关2.1 Autowired2.2 Component, Repository, Service, Controller2.3 RestController 与 Controller2.4 Configuration 与 Component2.5 Scope 三、处理常见的 HTTP 请求类型3.1 GET 请求3.2 POST 请求3.3 PUT 请求3.4 DELETE 请求3.5 PATC…...

题目:2566.替换一个数字后的最大差值

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;2566. 替换一个数字后的最大差值 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 将从左到右第一个非 9 数字全部修改为 9 以得到最大值。将从左到右第一个数字全部修改为 0 以得到最小值&a…...

python IntEnum

# 聊聊Python里的IntEnum&#xff1a;给常量一个体面的身份 在Python里处理常量或者状态码的时候&#xff0c;很多人习惯直接用数字或者字符串。比如写个status 1表示成功&#xff0c;status 0表示失败。刚开始这么写挺方便的&#xff0c;但项目稍微大一点&#xff0c;问题就…...

突破手游操控瓶颈:QtScrcpy虚拟映射技术全解析

突破手游操控瓶颈&#xff1a;QtScrcpy虚拟映射技术全解析 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 在移动游戏蓬勃发展的今天&#xff0c;触控操作的局限性日益凸显。竞技类…...

B站缓存视频合并终极指南:让离线观看体验完整如初

B站缓存视频合并终极指南&#xff1a;让离线观看体验完整如初 【免费下载链接】BilibiliCacheVideoMerge 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCacheVideoMerge 你是否曾经为B站缓存视频无法完整播放而烦恼&#xff1f;那些精心收藏的番剧、学习教程&…...

1111111111111111111111

111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

第11天:函数组合、记忆化与定时器

今天复习了函数组合、记忆化、setTimeout 和 setInterval&#xff0c;以下是知识点梳理与问答整理。一、函数组合&#xff08;Compose / Pipe&#xff09;1. 什么是函数组合&#xff1f;我的回答&#xff1a;把上一个函数的返回值作为下一个函数的参数&#xff0c;形成流水线式…...

嘉为蓝鲸应用发布中心V6.3发布:流自融合、安全提效,全方位护航企业级应用发布

前言 嘉为蓝鲸应用发布中心鲸舟是企业用于实现一体化应用投产发布的基础设施&#xff0c;能够对应用发布进行统一管理和自动化执行。平台支持单体/微服务应用发布、分布式/容器化发布、应用全生命周期管理&#xff0c;以及蓝绿/金丝雀发布等多种发布场景。发布总览 2026年春季&…...

隔离放大器:信号传输的精准隔离与保真核心

信号精准传输与安全隔离是电子系统稳定运行的关键&#xff0c;工业监测、医疗设备、电力系统、新能源转换等领域常面临信号微弱、电磁干扰、高低压共存等挑战。隔离放大器凭借高共模抑制比、强绝缘隔离、低噪声放大等核心优势&#xff0c;破解了传统放大器信号失真、安全隐患等…...

spring-ai 第一步集成入门

spring-ai 第一步入门 官网spring ai 做什么&#xff1f;涉及相关概念检索增加RAG工具调用 spring-ai 第一步入门 官网 spring-ai网址【https://spring.io/projects/spring-ai】 Spring AI 目前支持将输入和输出处理为语言、图像和音频的模型 spring ai 做什么&#xff1f;…...

3分钟搞定OLED图像转换:告别繁琐的嵌入式图像预处理

3分钟搞定OLED图像转换&#xff1a;告别繁琐的嵌入式图像预处理 【免费下载链接】image2cpp 项目地址: https://gitcode.com/gh_mirrors/im/image2cpp 还在为Arduino项目中的图像显示而烦恼吗&#xff1f;每次都要打开虚拟机、安装Windows软件、处理各种格式转换&#…...

Android系统栏透明模式终极指南:如何实现沉浸式UI设计

Android系统栏透明模式终极指南&#xff1a;如何实现沉浸式UI设计 【免费下载链接】SystemBarTint [DEPRECATED] Apply background tinting to the Android system UI when using KitKat translucent modes 项目地址: https://gitcode.com/gh_mirrors/sy/SystemBarTint …...