chuỗi JSON của tôi trông như thế này (chứa trong một biến chuỗi gọi sJSON
):Làm thế nào để lặp lại mảng JSON này bằng cách sử dụng Java và org.json trong Android?
[
{"id":284}
],
[
{"name":John,"surname":Doe},
{"name":Jane,"surname":Doe}
]
tôi có thể phân tích các mảng đầu tiên như thế này (sử dụng Java và nhập khẩu org.json):
JSONArray arrJSON = new JSONArray(sJSON);
JSONObject jsonGeneralData = new JSONObject(arrJSON.get(0).toString());
String sResult = jsonGeneralData.get("id").toString();
Điều đó trả về kết quả mong đợi, là 284. Tôi đang cố gắng để có được mảng thứ hai của các mục và lặp qua chúng. Tôi không chắc liệu chuỗi JSON của tôi có bị thay đổi hay không, hoặc nếu tôi đang cố truy cập nó theo cách sai. Dưới đây là những gì tôi đã thử:
JSONObject jsonPersonData = new JSONObject(arrJSON.get(1).toString());
Đây là như tôi nhận được, tôi không thể tìm ra cách lặp qua các mục riêng lẻ trong mảng thứ hai.
EDIT:
Dường như dòng này chỉ phân tích các chuỗi đầu tiên trong dấu ngoặc vuông:
JSONArray arrJSON = new JSONArray(sJSON);
Hoặc là JSON là sai (giống ví dụ như trên), hoặc nó không phân tích cú pháp nó đúng không? Tôi đã xoay sở để giải quyết vấn đề bằng cách chia nhỏ chuỗi ký tự và đặt chúng vào mỗi JSONArray
của riêng chúng, nhưng tôi không nghĩ đó là cách tốt nhất để làm việc.
Cập nhật các bài bản gốc với nhiều thông tin hơn. –
Mục đệ quy: https://gist.github.com/anonymous/89f8163fb22f77f4f9d3 –