Jackson เป็นไลบรารีที่พัฒนาขึ้นด้วย Java ใช้สำหรับแปลงออบเจ็กต์ Java เป็น JSON และในทางกลับกัน Jackson API มีความเร็วสูง ใช้หน่วยความจำน้อย และเหมาะสำหรับออบเจ็กต์ขนาดใหญ่ เราสามารถแปลง JSON Array เป็น List ได้โดยใช้คลาส ObjectMapper ซึ่งมีเมธอด readValue() ที่รับสตริง JSON และแปลงเป็นคลาสออบเจ็กต์ที่ระบุในอาร์กิวเมนต์ที่สอง
ตัวอย่างโค้ด
import java.util.*;
import com.fasterxml.jackson.databind.*;
public class JSONArrayToListTest {
public static void main(String[] args) {
String jsonStr = "[\"INDIA\", \"AUSTRALIA\", \"ENGLAND\", \"SOUTH AFRICA\", \"WEST INDIES\"]";
ObjectMapper objectMapper = new ObjectMapper();
try {
List<String> countries = objectMapper.readValue(jsonStr, List.class);
System.out.println("The countries are:\n " + countries);
} catch (Exception e) {
e.printStackTrace();
}
}
}
ผลลัพธ์
The countries are: [INDIA, AUSTRALIA, ENGLAND, SOUTH AFRICA, WEST INDIES]
คำอธิบายเพิ่มเติม
เมธอด readValue() สามารถรับชนิดข้อมูลเป้าหมายได้หลายรูปแบบ เช่น List.class, String[].class, หรือ TypeReference สำหรับ Generic Type ที่ซับซ้อนกว่านี้ เช่น List<MyObject> ซึ่งจะช่วยให้ Type Safety ดียิ่งขึ้น