![](/img/trans.png)
[英]I have a JSONArray of JSONObjects which are inside two more JSONObjects. How can I iterate through them and extract key information?
[英]Iterate through Java jsonObjects without array included
我的問題是這將創建 DailyJobObjects 的 3 個新實例,其值與對象一號(01、Bill、50)相同。 這樣做是合乎邏輯的,那么我如何遍歷我的 jsonObject 以便我可以分離三個對象? 我不知疲倦地查找了這個,但是我所看到的所有東西都包含在 jsonData 中,並且數組包含在 jsonData 中,這將使事情變得更容易,但是這個響應 Body 直接來自數據庫 - 沒有數組,只是背靠背的對象。 迭代只給了我我已經在一個單獨的方法中完成的鍵,給我一半的地圖。 現在我需要這些值。 你不必給我答案,你可以(我寧願)指出我遺漏的東西。 謝謝!
{"id":"01","name":"Bill","salary":"50"},
{"id":"02","name":"James","salary":"60"},
{"id":"03","name":"Ethan","salary":"70"}
JSONObject fields = new JSONObject(jsonData);
mObjectArray = new DailyJobObjectArray[fields.length()];
for(int i=0; i< fields.length(); i++) {
DailyJobObject mObject = new DailyJobObject();
mObject.setName(fields.getString("name"));
mObject.setSalary(fields.getString("salary"));
mObjectArray[i] = mObject;
}
return mObjectArray;
正如@Selvin 所提到的,您的 json 無效。 從數據庫中獲取正確的 json 或以非標准方式解析它。 我建議從數據庫中獲取一個合適的 json 數組。
String[] splitString = jsondata.split("[^a-zA-Z \\{\\}]+(?![^\\{]*\\})");
for ( String s : splitString) {
try {
JSONObject field = new JSONObject(s);
String name = field.getString("name");
String id = field.getString("id");
} catch (JSONException e) {
e.printStackTrace();
}
}
我也同意你的 mObject(...) 根本沒有意義
也許你正在尋找這樣的東西
mObject.setName(name)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.