当前位置: 首页 > 图灵资讯 > 技术篇> Java 对象转json 在线

Java 对象转json 在线

来源:图灵教育
时间:2023-12-12 13:56:14

Java 对象转 JSON 在线介绍

在现代软件开发中,我们经常需要 Java 对象转换为 JSON 格式。JSON(JavaScript Object Notation)它是一种常用的数据格式,具有简单、易读、易分析的特点,因此广泛应用于数据交换和存储。

为了实现 Java 对象转 JSON 我们可以使用一些开源库,如功能 Jackson、Gson 等等。这些图书馆提供了丰富的服务 API,它可以很容易地使用 Java 对象转换为 JSON,并支持自定义配置和灵活操作。

本文将介绍如何使用 Jackson 库实现 Java 对象转 JSON 并提供一些示例代码,帮助读者更好地理解和使用这些功能。

使用 Jackson 库

Jackson 它功能强大,应用广泛。 Java 库,用于处理 JSON 数据。它提供了一些核心类别和方法,使我们能够轻松地进行 Java 对象和 JSON 两者之间的转换。

添加 Jackson 依赖

要使用 Jackson 库,我们首先需要在项目中添加相应的依赖。以下是 Maven 项目示例配置:

<dependencies>  <dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.12.3</version>  </dependency></dependencies>
Java 对象转 JSON

下面是一个简单的例子,演示了如何将其展示出来 Java 对象转换为 JSON 字符串:

import com.fasterxml.jackson.databind.ObjectMapper;public class ObjectToJsonExample {  public static void main(String[] args) throws Exception {    // 创建一个 Java 对象    Person person = new Person("John", 30);    // 创建 ObjectMapper 实例    ObjectMapper mapper = new ObjectMapper();    // 将 Java 对象转换为 JSON 字符串    String jsonString = mapper.writeValueAsString(person);    // 打印 JSON 字符串    System.out.println(jsonString);  }  static class Person {    private String name;    private int age;    public Person(String name, int age) {      this.name = name;      this.age = age;    }    // getter 和 setter 方法省略  }}

在上述代码中,我们首先创建了一个名称 Person 的 Java 并使用对象 ObjectMapper 类将其转化为 JSON 字符串。然后我们打印并输出了这个 JSON 字符串。

注意,为使用 Jackson 能正确把握 Java 对象转换为 JSON,我们需要为 Person 提供默认的结构方法和相应的类别 getter/setter 方法。

JSON 转 Java 对象

除了将 Java 对象转换为 JSON,Jackson 还提供了将 JSON 转换为 Java 对象的功能。以下是一个示例:

import com.fasterxml.jackson.databind.ObjectMapper;public class JsonToObjectExample {  public static void main(String[] args) throws Exception {    // 定义一个 JSON 字符串    String jsonString = "{\"name\":\"John\", \"age\":30}";    // 创建 ObjectMapper 实例    ObjectMapper mapper = new ObjectMapper();    // 将 JSON 字符串转换为 Java 对象    Person person = mapper.readValue(jsonString, Person.class);    // 打印 Java 对象的属性    System.out.println("Name: " + person.getName());    System.out.println("Age: " + person.getAge());  }  static class Person {    private String name;    private int age;    public String getName() {      return name;    }    public void setName(String name) {      this.name = name;    }    public int getAge() {      return age;    }    public void setAge(int age) {      this.age = age;    }  }}

在上述代码中,我们定义了一个 JSON 并使用字符串 ObjectMapper 类将其转化为 Person 对象。然后,我们打印了 Person 对象的属性。

自定义配置

Jackson 为对象和对象提供了许多配置选项 JSON 灵活转换。以下是一些常用的配置选项示例:

  • 设置日期格式:
ObjectMapper mapper = new ObjectMapper();mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
  • 忽略空属性:
ObjectMapper mapper = new ObjectMapper();mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
  • 格式化输出:
ObjectMapper mapper = new ObjectMapper();mapper.enable(SerializationFeature.INDENT_OUTPUT