Truy xuất mảng lồng trong JSONObject
Khi JSON có cấu trúc lồng nhau (object chứa array chứa object...), dùng getJSONArray(String key) để lấy mảng con, sau đó duyệt qua từng phần tử bằng getJSONObject(index) và lấy giá trị bằng getString(key).
Ví dụ: Lấy danh sách username từ userInfo array
import java.util.*;
import org.json.*;
public class NestedJsonParseExample {
public static void main(String[] args) {
// JSON string (key không có dấu ngoặc kép - org.json chấp nhận)
String jsonData = "{userInfo : [{username:abc123}, {username:xyz123},{username:pqr123}, {username:mno123},{username:jkl123}]}";
JSONObject jsonObject = new JSONObject(jsonData);
List<String> usernames = new ArrayList<>();
JSONArray jsonArray = jsonObject.getJSONArray("userInfo");
for (int i = 0; i < jsonArray.length(); i++) {
String username = jsonArray.getJSONObject(i).getString("username");
usernames.add(username);
System.out.println(username);
}
}
}
Kết quả
abc123
xyz123
pqr123
mno123
jkl123
Lưu ý: JSON chuẩn yêu cầu key và string value trong dấu ngoặc kép. Ví dụ trên dùng cú pháp lỏng lẻo của org.json. Với JSON chuẩn, chuỗi nên là: {\"userInfo\":[{\"username\":\"abc123\"},...]}.