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

วิธีแปลง JSONArray เป็น String Array ใน Java

ใช้ Library org.json (JSON in Java) แปลง JSONArray เป็น String[] โดยวนลูปอ่านค่าแต่ละ Index แล้วเก็บใน List แล้วค่อย toArray()

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

import org.json.JSONArray;
import java.util.ArrayList;
import java.util.List;

public class JsonArrayToStringArray {
    public static void main(String[] args) {
        // สร้าง JSONArray
        JSONArray jsonArray = new JSONArray();
        jsonArray.put("INDIA");
        jsonArray.put("AUSTRALIA");
        jsonArray.put("SOUTH AFRICA");
        jsonArray.put("ENGLAND");
        jsonArray.put("NEWZEALAND");
        
        // แปลงเป็น List
        List<String> list = new ArrayList<>();
        for (int i = 0; i < jsonArray.length(); i++) {
            list.add(jsonArray.getString(i));
        }
        
        // แปลง List -> String[]
        String[] stringArray = list.toArray(new String[0]);
        
        // แสดงผล
        System.out.println("JSONArray: " + jsonArray);
        System.out.print("String Array: ");
        for (String str : stringArray) {
            System.out.print(str + " ");
        }
    }
}

ผลลัพธ์

JSONArray: ["INDIA","AUSTRALIA","SOUTH AFRICA","ENGLAND","NEWZEALAND"]
String Array: INDIA AUSTRALIA SOUTH AFRICA ENGLAND NEWZEALAND

คำอธิบายขั้นตอน

  1. jsonArray.length() - จำนวน Element
  2. jsonArray.getString(i) - ดึงค่า String ที่ Index i (โยน JSONException ถ้าไม่ใช่ String)
  3. list.toArray(new String[0]) - แปลง List เป็น Array ใหม่ (Java 11+ ใช้ toArray(String[]::new))

ทางเลือก: ใช้ Stream API (Java 8+)

String[] stringArray = java.util.stream.IntStream.range(0, jsonArray.length())
    .mapToObj(jsonArray::getString)
    .toArray(String[]::new);

Dependency (Maven)

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20231013</version>
</dependency>