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

Parse JSON object lồng nhau trong Java (org.json)

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\"},...]}.