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

วิธีแปลง List เป็น JSON Array ด้วย Jackson Library ใน Java

ใช้ Jackson Library คลาส ObjectMapper เมธอด writeValueAsString() แปลง Object ใดๆ (รวม List) เป็น JSON String

Dependency (Maven)

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

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

import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class ListToJsonArray {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("JAVA");
        list.add("PYTHON");
        list.add("SCALA");
        list.add(".NET");
        list.add("TESTING");
        
        ObjectMapper mapper = new ObjectMapper();
        // ตั้งค่า Pretty Print ให้อ่านง่าย
        mapper.enable(SerializationFeature.INDENT_OUTPUT);
        
        try {
            String json = mapper.writeValueAsString(list);
            System.out.println(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ผลลัพธ์

[
  "JAVA",
  "PYTHON",
  "SCALA",
  ".NET",
  "TESTING"
]

คำอธิบาย

  • ObjectMapper - Main class ของ Jackson สำหรับ Serialize/Deserialize
  • writeValueAsString(Object) - แปลง Object ใดๆ เป็น JSON String
  • SerializationFeature.INDENT_OUTPUT - ทำให้ JSON สวยงาม (Pretty Print)
  • List จะกลายเป็น JSON Array [...] อัตโนมัติ

การใช้งานขั้นสูง

// เขียนลงไฟล์โดยตรง
mapper.writeValue(new File("languages.json"), list);

// แปลงเป็น byte[]
byte[] jsonBytes = mapper.writeValueAsBytes(list);

// Custom Serializer สำหรับ Object ซับซ้อน

สรุป

Jackson ทำให้แปลง List -> JSON Array ง่ายมากด้วย ObjectMapper.writeValueAsString() รองรับ Generic Type และ Complex Object ได้เต็มที่