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

Jackson扁平化处理对象

POJO对象

@Data
public class People {private PeopleInfo peopleInfo;private List<String> peopleIds;private Map<String, String> peopleMap;@Datapublic static class PeopleInfo {private String name;private String address;}
}

JSON序列化处理

直接将对象进行序列化后,输出的JSON如下:

{"peopleInfo": {"name": "name","address": "address"},"peopleIds": ["1","2","3"],"peopleMap": {"key1": "value1","key2": "value2"}
}

实际有些业务中,想要的JSON形式扁平化,如下:

{"name": "name","address": "address","peopleIds": ["1","2","3"],"key1": "value1","key2": "value2"
}

普通对象

针对普通对象处理,可以直接使用Jackson的JsonUnwrapped注解
注意,此注解不满足使用Map对象

@Data
public class People {@JsonUnwrappedprivate PeopleInfo peopleInfo;private List<String> peopleIds;private Map<String, String> peopleMap;@Datapublic static class PeopleInfo {private String name;private String address;}
}

MAP对象

可以直接使用 @JsonAnySetter 和 @JsonAnySetter

@Data
public class People {@JsonUnwrappedprivate PeopleInfo peopleInfo;private List<String> peopleIds;private Map<String, String> peopleMap;@JsonAnySetterpublic void addPeopleMap(String key, String value) {peopleMap.put(key, value);}@JsonAnyGetterpublic Map<String, String> getPeopleMap() {return peopleMap;}@Datapublic static class PeopleInfo {private String name;private String address;}
}
http://www.lryc.cn/news/533286.html

相关文章:

  • Java即时编译器(JIT)的原理及在美团的实践经验
  • 使用 Ollama 在 Windows 环境部署 DeepSeek 大模型实战指南
  • 算法基础之八大排序
  • 使用TensorFlow和Keras构建卷积神经网络:图像分类实战指南
  • 音频进阶学习十一——离散傅里叶级数DFS
  • 20.<Spring图书管理系统①(登录+添加图书)>
  • 关于图像锐化的一份介绍
  • Django开发入门 – 0.Django基本介绍
  • 多智能体协作架构模式:驱动传统公司向AI智能公司转型
  • CentOS服务器部署Docker+Jenkins持续集成环境
  • 【prompt实战】AI +OCR技术结合ChatGPT能力项目实践(BOL提单识别提取专家)
  • 【Android】Android开发应用如何开启任务栏消息通知
  • 上传文件报错:the request was rejected because no multipart boundary was found
  • 大模型—Dify本地化部署实战
  • 功能架构元模型
  • 常用工具类——Collections集合框架
  • e2studio开发RA2E1(9)----定时器GPT配置输入捕获
  • 25/2/7 <机器人基础>雅可比矩阵计算 雅可比伪逆
  • 网络爬虫js逆向之异步栈跟栈案例
  • 使用Ollama本地部署deepseek
  • Rust错误处理:从灭火器到核按钮的生存指南
  • Golang:Go 1.23 版本新特性介绍
  • 电脑运行黑屏是什么原因?原因及解决方法
  • redis之AOF持久化过程
  • Elasticsearch:向量搜索的快速介绍
  • Docker在安装时遇到的问题(第一部分)
  • 使用 OpenGL ES 在 iOS 上渲染一个四边形:从基础到实现
  • Spring Boot 2 快速教程:WebFlux处理流程(五)
  • Vue 鼠标事件合集,关于鼠标右键的处理方法(改写鼠标右键方法、自定义鼠标右键)
  • 两种交换排序算法--冒泡,快速