Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chuyển đổi JSONArray thành Array dùng JSON-lib API (Java)

JSONArray là chuỗi giá trị có thứ tự (ordered sequence), dạng text bao trong ngoặc vuông. JSONArray.toArray() chuyển về Object[].

Cú pháp

public Object[] toArray()

Ví dụ minh họa

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

public class JsonArrayToArrayTest {
    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
        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"]]

Lưu ý

  • Kết quả là Object[] - cần cast từng element nếu muốn type cụ thể.
  • Nested array vẫn là Object[] hoặc JSONArray tùy implementation.
  • JSON-lib **đã deprecated**, dự án mới dùng **Jackson** (mapper.readValue(json, String[].class)) hoặc **Gson** (gson.fromJson(json, String[].class)).

Ví dụ tương đương với Jackson

ObjectMapper mapper = new ObjectMapper();
String json = "[\"A\",\"B\",[\"X\",\"Y\"]]";
// Chuyển thành List (linh hoạt hơn array)
List<Object> list = mapper.readValue(json, new TypeReference<List<Object>>() {});
// Hoặc Object[] nếu chắc chắn structure
Object[] arr = mapper.readValue(json, Object[].class);