Java 中 ObjectMapper用法(一个简单 Demo 讲清楚)

 更新时间:2026年01月06日 16:14:53   作者:Knight_AL  
ObjectMapper是Jackson库中的一个主要类,它负责将Java对象转换为 JSON格式(序列化),或将JSON数据转换为Java 对象(反序列化),本文给大家介绍Java 中 ObjectMapper用法,感兴趣的朋友跟随小编一起看看吧

在 Java 后端开发中,我们经常需要和前端、第三方服务打交道,而它们最常用的数据格式就是JSON

那么问题来了:

Java 对象,如何优雅地转换成 JSON?

答案就是:ObjectMapper

一、ObjectMapper 是什么?

ObjectMapperJackson 提供的核心类,用来做两件事:

  • Java 对象 → JSON 字符串
  • JSON 字符串 → Java 对象

一句话总结:

ObjectMapper = Java 世界和 JSON 世界之间的翻译官

二、一个最简单的使用场景

假设我们要发送这样一段 JSON:

{
  "name": "张三",
  "age": 18,
  "skills": ["Java", "Spring"]
}

在 Java 中,数据通常是这样写的:

Map<String, Object> user = new HashMap<>();
user.put("name", "张三");
user.put("age", 18);
user.put("skills", Arrays.asList("Java", "Spring"));

那如何把它变成 JSON 呢?

三、简单 Demo:Java 对象转 JSON

1️⃣ 示例代码

import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.*;
public class ObjectMapperDemo {
    public static void main(String[] args) throws Exception {
        // 1. 创建 ObjectMapper
        ObjectMapper objectMapper = new ObjectMapper();
        // 2. 构造 Java 对象
        Map<String, Object> user = new HashMap<>();
        user.put("name", "张三");
        user.put("age", 18);
        user.put("skills", Arrays.asList("Java", "Spring"));
        // 3. Java 对象 → JSON 字符串
        String json = objectMapper.writeValueAsString(user);
        // 4. 输出结果
        System.out.println(json);
    }
}

2️⃣ 运行结果

是不是很简单?

四、ObjectMapper 到底帮我们做了什么?

这一行代码是核心:

objectMapper.writeValueAsString(user);

它自动帮你完成了:

  • Map → JSON 对象
  • List → JSON 数组
  • String / int → JSON 基本类型
  • 自动处理中文(UTF-8)

完全不需要你手写 JSON 字符串。

五、为什么很多项目把 ObjectMapper 定义成 static?

你经常会在项目中看到:

static ObjectMapper OBJECT_MAPPER = new ObjectMapper();

原因有三个:

  1. ObjectMapper 是线程安全的
  2. 避免频繁 new,提高性能
  3. 方便统一配置

这是业界的标准用法。

六、JSON 转回 Java 对象

1️⃣ 示例代码

String json = "{\"name\":\"张三\",\"age\":18}";
ObjectMapper objectMapper = new ObjectMapper();
// JSON → Java Map
Map<String, Object> result =
        objectMapper.readValue(json, Map.class);
System.out.println(result.get("name")); // 张三
System.out.println(result.get("age"));  // 18

七、如果不用 ObjectMapper 会怎样?

你只能手动拼 JSON:

String json = "{ \"name\": \"" + name + "\", \"age\": " + age + " }";

❌ 问题很多:

  • 容易拼错格式
  • 不支持复杂结构
  • 维护成本极高

👉 实际项目中强烈不推荐

八、总结

ObjectMapper 核心要点

说明
是什么Java ↔ JSON 转换工具
用途代替手写 JSON
学习成本极低
实用性极高

到此这篇关于Java 中 ObjectMapper用法(一个简单 Demo 讲清楚)的文章就介绍到这了,更多相关java objectmapper使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot管理用户数据的操作步骤

    Spring Boot管理用户数据的操作步骤

    SpringBoot结合Thymeleaf模板引擎,可以快速搭建Web应用,介绍了使用SpringBoot处理JSON数据的基本过程,包括创建实体类、视图页面和控制器,通过这些步骤,即可完成基于SpringBoot和Thymeleaf的简单Web开发,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Java代码优化实现Zip压缩大文件从30秒到近乎1秒的优化过程

    Java代码优化实现Zip压缩大文件从30秒到近乎1秒的优化过程

    本文详细介绍了一种使用Java进行文件压缩的优化过程,从最初的无缓冲压缩到使用缓冲区,再到利用NIO的Channel和内存映射文件技术,最终实现压缩速度的显著提升,感兴趣的可以了解一下
    2025-09-09
  • java中类和对象的知识点总结

    java中类和对象的知识点总结

    在本篇文章里小编给大家整理了一篇关于java中类和对象的知识点总结,有需要的朋友们可以学习下。
    2020-12-12
  • 详解java中spring里的三大拦截器

    详解java中spring里的三大拦截器

    在本篇文章里我们给大家详细讲述了java中spring里的三大拦截器相关知识点以及用法代码,需要的朋友们学习下。
    2018-10-10
  • SpringBoot使用AOP,内部方法失效的解决方案

    SpringBoot使用AOP,内部方法失效的解决方案

    这篇文章主要介绍了SpringBoot使用AOP,内部方法失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 详解如何Java中实现Excel的注释和批注

    详解如何Java中实现Excel的注释和批注

    注释及批注是 Excel 中比较常用的功能,这篇文章主要为大家详细介绍了如何在Java中实现Excel的注释和批注,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • 在Spring Boot中使用Spark Streaming进行实时数据处理和流式计算的步骤

    在Spring Boot中使用Spark Streaming进行实时数据处理和流式计算的步骤

    这篇文章主要介绍了在Spring Boot中使用Spark Streaming进行实时数据处理和流式计算,通过本文的介绍,我们了解了在Spring Boot中使用Spark Streaming进行实时数据处理和流式计算的详细步骤,需要的朋友可以参考下
    2024-03-03
  • SpringBoot整合Hbase的实现示例

    SpringBoot整合Hbase的实现示例

    这篇文章主要介绍了SpringBoot整合Hbase的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • spring security中Authority、Role的区别及说明

    spring security中Authority、Role的区别及说明

    这篇文章主要介绍了spring security中Authority、Role的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 如何使用IDEA查看java文件编译后的字节码内容

    如何使用IDEA查看java文件编译后的字节码内容

    这篇文章主要介绍了如何使用IDEA查看java文件编译后的字节码内容,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论