首页 > 其他分享 >ObjectMapper 工具类

ObjectMapper 工具类

时间:2024-07-31 19:17:11浏览次数:9  
标签:Java String Person JSON 工具 序列化 ObjectMapper

问:ObjectMapper 工具类
答:

ObjectMapper 是 Jackson 库中的一个核心类,它提供了丰富的功能来在 Java 对象和 JSON 数据之间进行转换。Jackson 是一个流行的 Java 库,用于处理 JSON 数据。ObjectMapper 是一个非常灵活的类,它支持多种数据格式化和反序列化选项,并且可以轻松地集成到任何 Java 应用程序中。

下面是一个简单的 ObjectMapper 工具类示例,展示了如何使用这个类来序列化和反序列化 Java 对象。请注意,这个示例假设你已经将 Jackson 库添加到了你的项目依赖中。

javaimport com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;

public class ObjectMapperUtil {

private static final ObjectMapper objectMapper = new ObjectMapper();

// 私有构造函数,防止实例化
private ObjectMapperUtil() {
}

// 将 Java 对象转换为 JSON 字符串
public static String toJson(Object obj) throws JsonProcessingException {
return objectMapper.writeValueAsString(obj);
}

// 将 JSON 字符串转换为 Java 对象
public static <T> T fromJson(String json, Class<T> clazz) throws IOException {
return objectMapper.readValue(json, clazz);
}

// 可以添加更多实用的方法,比如处理复杂的数据类型或配置 ObjectMapper
}

使用示例

假设你有一个简单的 Java 类 Person,如下所示:

javapublic class Person {
private String name;
private int age;

// 构造函数、getter 和 setter 省略
}

你可以使用 ObjectMapperUtil 类来序列化和反序列化 Person 对象:

javapublic class Main {
public static void main(String[] args) {
Person person = new Person();
person.setName("John Doe");
person.setAge(30);

try {
// 将 Person 对象转换为 JSON 字符串
String json = ObjectMapperUtil.toJson(person);
System.out.println(json); // 输出 JSON 字符串

// 将 JSON 字符串转换回 Person 对象
Person personFromJson = ObjectMapperUtil.fromJson(json, Person.class);
System.out.println(personFromJson.getName()); // 输出: John Doe
} catch (JsonProcessingException | IOException e) {
e.printStackTrace();
}
}
}

这个工具类是一个很好的起点,但请注意,根据你的需求,你可能需要对其进行扩展,例如添加自定义的序列化器或反序列化器,配置 ObjectMapper 以使用特定的日期格式等。

标签:Java,String,Person,JSON,工具,序列化,ObjectMapper
From: https://www.cnblogs.com/sunny3158/p/18335285

相关文章

  • 交叉编译工具链toolchain bin文件作用 gcc g++ ld ar as nm strip objdump
    前言全局说明交叉编译工具链toolchainbin文件作用gccg++ldarasnmstripobjdump一、说明二、bin文件功能arm-xxxx-linux-gcc #GNU的C语言编译器arm-xxxx-linux-g++ #GNU的C++语言编译器arm-xxxx-linux-cpp #GNU的C的预编译器arm-xxxx-linux-gcov #gcc的......
  • funccache:革命性的Python函数缓存工具,轻松提升代码效率!
    funccacheEnglish|中文如其名,funccache实现函数缓存功能,由GQYLPY团队研发的一个框架,可缓存某个函数或某个类中定义的所有方法的返回值。你的程序中有一个函数会被多次调用,并且返回值不变,你会怎么做?为提高代码效率,你会先调用一次该函数并把返回值存到一个变量,之后就使用......
  • OpenAI 向部分用户开放 GPT-4o 高级语音模式;AI 视频生成工具 Vidu 全球上线丨 RTE 开
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观......
  • 安装lkp-test性能测试工具
    (参考官网)https://gitee.com/openeuler/technical-certification/blob/master/testing-tools/欧拉技术测评ISV商用软件测试工具lkp-tests用户指南.md#步骤3-执行兼容性测试从有问题的步骤开始修改:工具安装步骤6:写入环境变量exportLKP_PATH="/root/lkp-tests"测试执行步骤2:安......
  • .NET 开源的数据库文档查询和生成工具
    前言在实际项目开发中,需求变更和项目迭代是常态。要求我们能够迅速响应,对数据库结构进行相应的调整,如添加新表、更新现有表结构或增加字段等。为了确保团队成员之间的信息同步,实时更新和维护数据库文档变得至关重要。这不仅提升了数据库的可读性,也极大提高了开发效率和团队协作......
  • 使用这个Blender工具非破坏性地自动化切割面板线
    "PanelCutter"插件自动化了在Blender中沿选定边缘创建程序化面板线的过程,使其成为硬表面建模的必备工具。这是一个设计用来非破坏性地自动化切割程序化面板线的小工具。这个工具对于硬表面模型,如汽车、船只和飞机来说,是救星。现在你可以动态地分配面板切割,而无需将其建模到拓扑......
  • 适合大学生体质的开发者工具介绍
    在这个快速变化的技术世界中,开发者们总是在寻找能够提升工作效率、优化代码质量的工具。本篇博客将带领您深入了解一系列专为开发者设计的实用工具,它们不仅能帮助您简化开发流程,还能增强代码的可读性和可维护性。从代码编辑器到版本控制系统,从自动化测试工具到持续集成/持续部......
  • 前端部署工具
    前端部署工具用electron写了一个通用的前端部署工具,支持SSH的理论上都可以使用该工具,使用nodejs实现模拟登陆以及上传文件到服务器并解压链接:https://pan.baidu.com/s/1rGnAO4X_xfv90UecuAMFkA?pwd=2mte提取码:2mte......
  • 核心(Hutool-core)LocalDateTime工具-LocalDateTimeUtil
    介绍从Hutool的5.4.x开始,Hutool加入了针对JDK8+日期API的封装,此工具类的功能包括LocalDateTime和LocalDate的解析、格式化、转换等操作使用日期转换StringdateStr="2020-01-23T12:23:56";DateTimedt=DateUtil.parse(dateStr);//Date对象转换为LocalDateTimeLocalDat......
  • 核心(Hutool-core)计时器工具-TimeInterval
    介绍Hutool通过封装TimeInterval实现计时器功能,即可以计算方法或过程执行的时间。TimeInterval支持分组计时,方便对比时间。使用TimeIntervaltimer=DateUtil.timer();//---------------------------------//-------这是执行过程//---------------------------------time......