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ặcJSONArraytù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);