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

วิธีแปลง JSON เป็น Java Object ด้วยไลบรารี Jackson ใน Java

คลาส ObjectMapper เป็นคลาสสำคัญที่สุดในไลบรารี Jackson เราสามารถแปลง JSON เป็น Java Object ได้โดยใช้เมธอด readValue() ของคลาส ObjectMapper เมธอดนี้ถอดรหัส (deserializes) เนื้อหา JSON จากสตริง JSON ที่ให้มา

ไวยากรณ์

public <T> readValue(String content, JavaType valueType) throws IOException, JsonParseException, JsonMappingException

ตัวอย่างโค้ด

import java.io.*;
import java.util.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;

public class JSONToJavaObjectTest {
    public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException {
        Employee emp1 = new Employee();
        emp1.setFirstName("Raja");
        emp1.setLastName("Ramesh");
        emp1.setId(115);
        emp1.getTechnologies().add("Java");
        emp1.getTechnologies().add("Selenium");
        emp1.getTechnologies().add("Spark");
        
        ObjectMapper mapper = new ObjectMapper();
        String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(emp1);
        System.out.println(jsonStr);
        System.out.println("Deserializing JSON to Object:");
        
        Employee emp2 = mapper.readValue(jsonStr, Employee.class);
        System.out.println(emp2.getId() + " " + emp2.getFirstName() + " " + emp2.getLastName() + " " + emp2.getTechnologies());
    }
}

// คลาส Employee
class Employee {
    private int id;
    private String firstName;
    private String lastName;
    private List technologies = new ArrayList<>();
    
    public int getId() { return id; }
    public void setId(int id) { this.id = id; }
    
    public String getFirstName() { return firstName; }
    public void setFirstName(String firstName) { this.firstName = firstName; }
    
    public String getLastName() { return lastName; }
    public void setLastName(String lastName) { this.lastName = lastName; }
    
    public List getTechnologies() { return technologies; }
    public void setTechnologies(List technologies) { this.technologies = technologies; }
}

ผลลัพธ์

{
    "id" : 115,
    "firstName" : "Raja",
    "lastName" : "Ramesh",
    "technologies" : [
        "Java",
        "Selenium",
        "Spark"
    ]
}
Deserializing JSON to Object:
115 Raja Ramesh [Java, Selenium, Spark]