[英]How to parse JSON string into ArrayList using Java?
我正在從API獲得以下響應
String response={"balance":1000,
"lastliability":2000,"profitarray":[[1,2,3],[67,88,99]],"previous":[99,88]}
我正在嘗試將利潤數組轉換為Java中的ArrayList
JSONObject res=new JSONObject(response);
ArrayList<ArrayList<Integer>> temp=res.getString("profitarray")//something like this
ArrayList<Integer>yy=res.getString("previous");
顯然,res.getstring的輸出將是String,我想將它們轉換為ArrayList,知道怎么做嗎?
您可以使用JsonArray從JSON響應中提取數組。 稍后,您可以使用Collections API將該數組轉換為ArrayList。
JsonObject res = new JsonObject(response);
JsonArray array1 = res.getJsonArray("profitarray");
JsonArray array2 = res.getJsonArray("previous");
ArrayList<JsonObject> arrayList1 = new ArrayList(array1.length());
ArrayList<JsonObject> arrayList2 = new ArrayList(array2.length());
for(int i=0;i < array1.length();i++){
arrayList1.add(array1.getJsonObject(i));
}
for(int j=0;j < array2.length();j++){
arrayList2.add(array2.getJsonObject(j));
}
關鍵是創建一個對響應進行建模的Java類 。 請使用Google Gson查看此示例。
回應類別:
import java.util.ArrayList;
public class Response {
// int balance;
// int lastLiability;
// ArrayList<Integer> previous;
ArrayList<ArrayList<Integer>> profitarray;
}
Gson示例:
import com.google.gson.Gson;
public class GsonExample {
public static void main(String[] args) {
String json = "{\"balance\":1000,\"lastliability\":2000,\"profitarray\":[[1,2,3],[67,88,99]],\"previous\":[99,88]}";
Response response = new Gson().fromJson(json, Response.class);
System.out.println(response.profitarray);
}
}
我想您應該添加訪問器,equals / hashCode和所有這些雜音,但是您明白了。
可能是一種復雜的方法,但是由於您需要ArrayList>,因此我們
public static void main(String[] args) {
String response = "{\"balance\":1000,\n" +
" \"lastliability\":2000,\"profitarray\":[[1,2,3],[67,88,99]],\"previous\":[99,88]}";
JSONObject res=new JSONObject(response);
JSONArray array = res.getJSONArray("profitarray");
ArrayList<JSONArray> profitList = new ArrayList<>();
for (int i = 0; i < array.length(); i++){
profitList.add(array.getJSONArray(i));
}
ArrayList<ArrayList<Integer>> finalList = new ArrayList<>();
ArrayList<Integer> list1 = new ArrayList<>();
for (int i = 0; i < profitList.size(); i++){
JSONArray array1 = profitList.get(i);
list1 = new ArrayList<>();
for (int j = 0; j < array1.length(); j++){
list1.add(array1.getInt(j));
}
finalList.add(list1);
}
}
ArrayList finalList包含最終輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.