Computer >> Máy Tính >  >> Lập trình >> Java

Cách chuyển đổi đối tượng Java sang JSON

Trong hướng dẫn này, chúng tôi chỉ ra cách chuyển đổi một đối tượng Java sang JSON bằng cách sử dụng hai thư viện, Jackson và Gson.

Chúng tôi sẽ sử dụng lớp Person chỉ là một POJO tiêu chuẩn. Sau khi tạo một đối tượng người, chúng ta có thể chuyển đổi nó thành JSON bằng các thư viện khác nhau.

Person.java

import java.util.List;
import java.util.Map;

public class Person {

    String name;
    Integer age;
    List<String> hobbies;
    Map<String, String> languages;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public List<String> getHobbies() {
        return hobbies;
    }

    public void setHobbies(List<String> hobbies) {
        this.hobbies = hobbies;
    }

    public Map<String, String> getLanguages() {
        return languages;
    }

    public void setLanguages(Map<String, String> languages) {
        this.languages = languages;
    }
}

Chuyển Java sang JSON bằng Jackson

Chúng ta có thể sử dụng ObjectMapper của thư viện Jackson để chuyển đổi một đối tượng Java thành JSON.

ObjectMapper lớp có các phương thức khác nhau để ghi JSON vào tệp hoặc viết JSON dưới dạng chuỗi.

Trong ví dụ sau, chúng tôi ghi vào một tệp và cũng sử dụng chức năng in đẹp để hiển thị JSON được định dạng.

Nhưng trước tiên, hãy lấy thư viện Jackson từ Maven và đặt dưới dạng phụ thuộc trong pom.xml tệp:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.10.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.2</version>
</dependency>

ConvertJavaObjectToJson.java

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ConvertJavaObjectToJson {

    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();
        Person person = newPerson();

        try {
            mapper.writeValue(new File("person.json"), person);
            String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(person);
            System.out.println(jsonString);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static Person newPerson() {
        Person person = new Person();

        List<String> hobbies = new ArrayList<>();
        hobbies.add("Football");
        hobbies.add("Cooking");
        hobbies.add("Swimming");

        Map<String, String> languages = new HashMap<>();
        languages.put("French", "Beginner");
        languages.put("German", "Intermediate");
        languages.put("Spanish", "Advanced");

        person.setName("David");
        person.setAge(30);
        person.setHobbies(hobbies);
        person.setLanguages(languages);

        return person;
    }
}

Đầu ra:

{
  "name" : "David",
  "age" : 30,
  "hobbies" : [ "Football", "Cooking", "Swimming" ],
  "languages" : {
    "French" : "Beginner",
    "German" : "Intermediate",
    "Spanish" : "Advanced"
  }
}

Cũng là một tệp person.json được tạo trong không gian làm việc của dự án.

Có liên quan:

  • Cách phân tích cú pháp JSON trong Java
  • Cách chuyển đổi Java Map sang JSON
  • Cách mã hóa và giải mã JSON

Chuyển Java sang JSON bằng Gson

Nhận phần phụ thuộc

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>

Sau đó

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ConvertJavaObjectToJson {

    public static void main(String[] args) {
        Gson gson = new Gson();
        Person person = newPerson();
        String jsonString = gson.toJson(person);
        System.out.println(jsonString);
    }

    private static Person newPerson() {
        Person person = new Person();

        List<String> hobbies = new ArrayList<>();
        hobbies.add("Football");
        hobbies.add("Cooking");
        hobbies.add("Swimming");

        Map<String, String> languages = new HashMap<>();
        languages.put("French", "Beginner");
        languages.put("German", "Intermediate");
        languages.put("Spanish", "Advanced");

        person.setName("David");
        person.setAge(30);
        person.setHobbies(hobbies);
        person.setLanguages(languages);

        return person;
    }
}

Đầu ra