@JsonRawValue 注解

这里写目录标题

  • 1. 问题
  • 2. @JsonRawValue 注解说明

1. 问题

在实际开发中我遇到这样一个问题,查询数据库的结果返回的content内容是含有转移符的JSON字符串,但是我需要返回的不包含转移的String字符串。经过我一顿折腾并未发现解决办法,直到@JsonRawValue注解。import com.fasterxml.jackson.annotation.JsonRawValue;

{"code": 200,"data": {"content": "[[\"ID\",\"名字\",\"别名\",\"国籍\",\"性别\",\"毕业院校\",\"民族\",\"经纪公司\",\"职业\",\"血型\",\"身高\",\"体重\",\"出生地\",\"出生日期\",\"主要成就\",\"代表作品\"],[\"0c3474ab3c79db930cfca1a88a47e5f5\",\"白冰\",\"白小冰、冰冰、二公主、冰姐\",\"中国\",\"女\",\"西北政法大学\",\"汉族\",\"英皇娱乐集团有限公司\",\"演员、歌手\",\"AB型\",\"165 cm\",\"44 kg\",\"陕西省西安市\",\"1986年5月2日\",\"第4届华鼎奖中国最受观众喜爱的女演员奖\",\"神话,红楼梦、隐婚男女、凰图腾、隋唐演义\"],[\"947aefe8e061d34307c4f884c6b8408a\",\"陈龙\",\"陈洁\",\"中国\",\"暂无\",\"上海戏剧学院\",\"汉族\",\"北京时代电影有限公司\",\"演员\",\"O型\",\"180 cm\",\"68 kg\",\"上海市\",\"1976年7月24日\",\"第39届台湾金钟奖最佳男配角2015国剧盛典最具突破精神男演员\",\"真空爱情记录、新水浒传、少年杨家将、琅琊榜、猎场、欢乐颂2\"],[\"cc07a5b18aa515c31cefcda2811733c5\",\"甘昀宸\",\"暂无\",\"中国\",\"男\",\"北京电影学院表演系\",\"暂无\",\"暂无\",\"演员\",\"O型\",\"180 cm\",\"暂无\",\"新疆维吾尔自治区乌鲁木齐市\",\"1988年1月1日\",\"暂无\",\"藤科动物也凶猛、了不起的夜晚、不虚此行\"],[\"6663a8c7c5d839150b707b03f5d7bbe8\",\"高圆圆\",\"暂无\",\"中国\",\"女\",\"中国劳动关系学院\",\"汉族\",\"华视娱乐传媒(广州)有限公司\",\"演员、模特\",\"A型\",\"165 cm\",\"48 kg\",\"北京市丰台区\",\"1979年10月5日(己未年八月十五)\",\"第52届韩国电影大钟奖最佳海外女演员奖第31届香港电影金像奖最佳女主角提名第18届北京影视春燕奖最佳女主角奖第11届中国电影表演艺术学会奖新人奖\",\"咱们结婚吧、倚天屠龙记、青红、十七岁的单车、南京!南京!、单身男女、搜索、一生一世\"],[\"fba5427da6f0cf046b9620ec4496ea90\",\"古力娜扎\",\"暂无\",\"中国\",\"暂无\",\"北京电影学院\",\"维吾尔族\",\"北京和颂文化经纪有限公司\",\"演员、模特\",\"A型\",\"172 cm\",\"暂无\",\"新疆乌鲁木齐市\",\"1992年5月2日\",\"第15届中国电影表演艺术学会金凤凰奖学会新人奖\",\"十年三月三十日、择天记、缝纫机乐队、仙剑云之凡、柠檬初上、青丘狐传说、轩辕剑之天之痕、风起霓裳、无与伦比的美丽\"]]","id": 1209},"msg": "success"
}

在这里插入图片描述
加上这个注解后,返回的结果就变成这样了,解决了问题。

{"code": 200,"data": {"content": [["ID","名字","别名","国籍","性别","毕业院校","民族","经纪公司","职业","血型","身高","体重","出生地","出生日期","主要成就","代表作品"],["0c3474ab3c79db930cfca1a88a47e5f5","白冰","白小冰、冰冰、二公主、冰姐","中国","女","西北政法大学","汉族","英皇娱乐集团有限公司","演员、歌手","AB型","165 cm","44 kg","陕西省西安市","1986年5月2日","第4届华鼎奖中国最受观众喜爱的女演员奖","神话,红楼梦、隐婚男女、凰图腾、隋唐演义"],...],"id": 1209},"msg": "success"
}

2. @JsonRawValue 注解说明

@JsonRawValue是Jackson框架提供的一个注解,用于标记一个字段的内容应该原样输出,而不进行额外的转义或处理。
作用:
原样输出:该注解会让Jackson在序列化时,原样输出该字段的值,尤其是对于字符串类型的字段。它告诉Jackson这个字段内容是已经处理过的JSON格式内容,应该直接当做原始数据返回,而不进行额外的序列化操作。

避免转义:常规情况下,字符串中的特殊字符(比如"、\n、\t等)在JSON序列化时会被转义。例如,content字段中的JSON字符串可能包含双引号和反斜杠,这会在序列化时被转义成"、\等,而加了@JsonRawValue注解后,这些特殊字符就会直接输出,保持原样。

适用场景:

  1. 存储并传递原始JSON:当你需要传递一个已经序列化的JSON字符串,且不希望它被Jackson再次序列化。
  2. 避免额外的转义:比如,存储HTML代码或JSON结构,确保它们在返回时不被转义。

依赖:
@JsonRawValue注解是Jackson库中的一部分,属于Jackson的核心模块jackson-annotations,通常情况下,你需要以下两个核心依赖来使用它:

jackson-annotations:提供注解的支持,包含@JsonRawValue等常用注解。
jackson-databind:包含了Jackson的序列化和反序列化功能,实际上执行数据转换。

pom依赖

注意:spring-boot-starter-web 这个依赖已经间接包含了 Jackson 库

<dependencies><!-- Jackson annotations dependency --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.15.0</version>  <!-- 使用你项目中合适的版本 --></dependency><!-- Jackson databind dependency (contains serialization and deserialization logic) --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.0</version>  <!-- 使用你项目中合适的版本 --></dependency>
</dependencies>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node.js+兰空图床实现随机图

之前博客一直用的公共的随机图API&#xff0c;虽然图片的质量都挺不错的&#xff0c;但是稳定性都比较一般&#xff0c;遂打算使用之前部署的兰空图床&#xff0c;自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作&#xff0c;有兴趣的话可…

MySQL binlog的三种模式

MySQL 的 binlog&#xff08;Binary Log&#xff09; 默认的模式是 STATEMENT&#xff0c;即 语句模式。在这种模式下&#xff0c;MySQL 会记录所有对数据库执行的数据修改操作&#xff08;如 INSERT、UPDATE、DELETE 等&#xff09;的 SQL 语句。 1. binlog 的三种模式 MySQL…

25农村发展研究生复试面试问题汇总 农村发展专业知识问题很全! 农村发展复试全流程攻略 农村发展考研复试真题汇总

农村发展复试当然有好的建议&#xff01;前提是复试重点面试题背好&#xff01; 你是不是也在为农村发展考研复试发愁&#xff1f;担心自己准备不充分、表现不好&#xff1f;别急&#xff01;今天&#xff0c;学姐——复试面试拿下90分成功上岸的学姐&#xff0c;来给大家分享…

读取本地excel并生成map,key为第一列,value为第二列

添加依赖&#xff1a;在 pom.xml 文件中添加以下依赖&#xff1a; <dependencies><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.3</version></dependency><dependency&…

代码随想录算法【Day44】

Day44 1143.最长公共子序列 class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<int>(text2.size() 1, 0));for (int i 1; i < text1.size(); i) {for (int j 1; …

【transformers.Trainer填坑】在自定义compute_metrics时logits和labels数据维度不一致问题

问题描述 我在使用 transformers.Trainer 训练我的模型时&#xff0c;我自定义了 compute_loss 函数和compute_metrics函数&#xff0c;我的模型是一个简单的二分类模型。 在自定义 compute_loss 时这样写的&#xff1a; def compute_loss(self, model, inputs, return_outp…

论文学习记录之《CLR-VMB》

目录 一、基本介绍 二、介绍 三、方法 3.1 FWI中的数据驱动方法 3.2 CLR-VMB理论 3.3 注意力块 四、网络结构 4.1 网络架构 4.2 损失函数 五、实验 5.1 数据准备 5.2 实验设置 5.3 训练和测试 5.4 定量分析 5.5 CLR方案的有效性 5.6 鲁棒性 5.7 泛化性 六、讨…

【STM32】舵机SG90

1.舵机原理 舵机内部有一个电位器&#xff0c;当转轴随电机旋转&#xff0c;电位器的电压会发生改变&#xff0c;电压会带动转一定的角度&#xff0c;舵机中的控制板就会电位器输出的电压所代表的角度&#xff0c;与输入的PWM所代表的角度进行比较&#xff0c;从而得出一个旋转…

算法刷题-链表系列-移除链表、设计链表、翻转列表

题目要求 所有主要考察对链表的增删查改的功能 总结 对于有些从头遍历到尾的方法&#xff0c;创建一个头结点使得所有的结点能以统一的方式且全部被遍历到&#xff0c;不会出现头结点不被遍历的问题。对于遍历的条件&#xff0c;有的时候curNode ! nullptr&#xff0c;有的时…

Django项目中创建app并快速上手(pycharm Windows)

1.打开终端 我选择的是第二个 2.运行命令 python manage.py startapp 名称 例如&#xff1a; python manage.py startapp app01 回车&#xff0c;等待一下&#xff0c;出现app01的文件夹说明创建成功 3.快速上手 1.app注册 增加一行 "app01.apps.App01Config"&#…

Windows系统安装搭建悟空crm客户管理系统 教程

1、在安装悟空 CRM 之前&#xff0c;需要确保你的 Windows 系统上已经安装了以下软件&#xff1a; Web 服务器&#xff1a;推荐使用 Apache 或 Nginx&#xff0c;这里以 Nginx 为例。你可以使用集成环境套件如 XAMPP 来简化安装过程&#xff0c;它包含了 Nginx 、MySQL、PHP 等…

深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决

在深度学习框架中&#xff0c;TensorFlow 和 PyTorch 无疑是两大明星框架。前面两篇文章我们分别介绍了 TensorFlow&#xff08;点击查看&#xff09; 和 PyTorch&#xff08;点击查看&#xff09;。它们引领着 AI 开发的潮流&#xff0c;吸引着无数开发者投身其中。但这两大框…

java每日精进 2.13 Ganache(区块链本地私有化部署)

需求&#xff1a;使用区块链实现数据村存储&#xff0c;记录一些不可篡改的交互信息&#xff0c;网络环境为内外网均需要部署&#xff1b; 1.准备工作&#xff08;软件安装&#xff09; 1.1 安装 Node.js 和 npm 1.2 安装 Ganache 地址如下&#xff1a;windows有可视化界面 &a…

w206基于Spring Boot的农商对接系统的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

chrome://version/

浏览器输入&#xff1a; chrome://version/ Google浏览器版本号以及安装路径 Google Chrome131.0.6778.205 (正式版本) &#xff08;64 位&#xff09; (cohort: Stable) 修订版本81b36b9535e3e3b610a52df3da48cd81362ec860-refs/branch-heads/6778_155{#8}操作系统Windows…

哈希槽算法与一致性哈希算法比较

Redis 集群模式使用的 哈希槽&#xff08;Hash Slot&#xff09; 算法与传统的 一致性哈希&#xff08;Consistent Hashing&#xff09; 算法在数据分布和节点管理上有显著的区别。以下是两者的详细比较&#xff1a; 1. Redis 哈希槽算法 1.1 基本原理 Redis 集群将整个数据集…

【BUUCTF逆向题】[WUSTCTF2020]level3(魔改base64)

一.[WUSTCTF2020]level3 打开IDA反汇编&#xff0c;发现就是base64加密 这里rand就是与&搭配设置奇偶数2分随机 但是根据提示不是标准base64加密 首先想到魔改密码表&#xff0c;追踪进去&#xff0c;发现没有什么变化啊 尝试对Base64字符串解码也不对 追踪密码表CtrlX发…

有关Java中的接口

学习目标 掌握接口语法理解接口多态熟练使用接口了解接口新特性掌握final关键字了解lambda语法 1.接口语法 1.1 接口概念 从功能上看, 实现接口就意味着扩展了某些功能 接口与类之间不必满足is-a的关系结构 从抽象上看, 接口是特殊的抽象父类 从规则上看, 接口定义者和实…

鸿蒙(openharmony) 5.0 光感接口崩溃

目录 1.背景 2.解决方案 1.背景 使用OpenHarmony 5.0调用光感接口崩溃,返回的值是undefined,接口如下: sensor.on(sensor.SensorId.AMBIENT_LIGHT, (data) => {if (data == null || data == undefined || data.intensity == null || data.intensity == undefined) {ret…

git用法(简易版)

介绍 git是一个版本管理工具 使用方法 建立仓库 第一步 git init&#xff1a;初始化仓库 第二步 git add .&#xff1a;将代码添加到暂存区 第三步 git commit -m "first"&#xff1a;为修改添加备注 第四步 git remote add origin 你的url 第五步 git pus…