Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีแปลง Java Object เป็น JSON

ในบทช่วยสอนนี้ เราจะแสดงวิธีแปลงวัตถุ Java เป็น JSON โดยใช้ไลบรารีสองไลบรารี Jackson และ Gson

เราจะใช้คลาส Person ซึ่งเป็นเพียง POJO มาตรฐาน เมื่อเราสร้างวัตถุบุคคล เราก็สามารถแปลงเป็น JSON โดยใช้ไลบรารีต่างๆ ได้

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;
    }
}

แปลง Java เป็น JSON โดยใช้ Jackson

เราสามารถใช้ ObjectMapper คลาสของไลบรารี Jackson เพื่อแปลงวัตถุ Java เป็น JSON

ObjectMapper class มีวิธีการต่างๆ ในการเขียน JSON ไปยังไฟล์หรือเขียน JSON เป็นสตริง

ในตัวอย่างต่อไปนี้ เราเขียนไปยังไฟล์และใช้ฟังก์ชัน Pretty Print เพื่อแสดง JSON ที่จัดรูปแบบแล้ว

แต่ก่อนอื่น ให้นำไลบรารี่ Jackson จาก Maven มาไว้เป็นที่พึ่งพาใน pom.xml ไฟล์:

<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;
    }
}

เอาท์พุต:

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

เป็นไฟล์ person.json ถูกสร้างขึ้นในพื้นที่ทำงานของโครงการ

ที่เกี่ยวข้อง:

  • วิธีแยก JSON ใน Java
  • วิธีการแปลง Java Map เป็น JSON
  • วิธีเข้ารหัสและถอดรหัส JSON

แปลง Java เป็น JSON โดยใช้ Gson

รับการพึ่งพา

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

แล้ว

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;
    }
}

เอาท์พุต