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

วิธีแปลง JSON Array เป็น Array ด้วย JSON-lib API ใน Java

JSONArray เป็นลำดับของค่า (sequence of values) รูปแบบภายนอกคือ string ครอบด้วย square brackets คั่นด้วย comma รูปแบบภายในคือ object ที่มีเมธอด get() และ opt() สำหรับเข้าถึงค่าผ่าน index และเมธอด element() สำหรับเพิ่ม/แทนที่ค่า

Array ใน Java เป็น object ที่จัดเก็บหลายค่าของ ชนิดเดียวกัน (same type) รองรับทั้ง primitive types และ object references เราสามารถแปลง JSON array เป็น array ด้วยเมธอด toArray() ของคลาส JSONArray เมธอดนี้คืนค่า Object[] ที่มีเนื้อหาจาก JSONArray

Syntax

public Object[] toArray()

ตัวอย่างการใช้งาน

import java.util.Arrays;
import net.sf.json.JSONArray;

public class ConvertJSONArrayToArrayTest {
    public static void main(String[] args) {
        JSONArray jsonArray = new JSONArray()
            .element("Raja Ramesh")
            .element("115")
            .element("Tutorials Point")
            .element("Hyderabad")
            .element(new String[] {"Java", "Testing", "Python"});
        
        String jsonStr = jsonArray.toString(3); // pretty print JSON
        System.out.println("JSON:\n" + jsonStr);
        
        Object[] array = jsonArray.toArray();
        System.out.println("-------------------------------------------------------------------");
        System.out.println("Array:\n" + Arrays.toString(array));
    }
}

ผลลัพธ์ (Output)

JSON:
[
  "Raja Ramesh",
  "115",
  "Tutorials Point",
  "Hyderabad",
  [
    "Java",
    "Testing",
    "Python"
  ]
]
-------------------------------------------------------------------
Array:
[Raja Ramesh, 115, Tutorials Point, Hyderabad, ["Java","Testing","Python"]]

คำอธิบาย

เมธอด toArray() คืนค่า Object[] ที่แต่ละ element เป็น Java object ตาม type ใน JSON (String, Integer, String[], etc.) โปรดสังเกตว่า nested array ใน JSON จะกลายเป็น String[] ใน Java array

ข้อควรระวัง

  • ผลลัพธ์เป็น Object[] ต้อง cast ให้ถูกต้องเมื่อใช้งาน
  • JSON array ที่มี mixed types จะได้ Object[] ที่มี mixed types ตามไปด้วย
  • nested JSON array จะกลายเป็น Object[] หรือ Array ตาม implementation

สรุป

JSONArray.toArray() เป็นวิธีง่ายๆ ในการแปลง JSON array เป็น Java array สำหรับการประมวลผลต่อไป แต่ควรระวัง type safety เนื่องจากคืนค่าเป็น Object[]