簡體   English   中英

如何在Java中迭代JSONArray

[英]How to iterate JSONArray in java

我想從JSONArray中提取值。 JSONArray具有N個行和列。

        ObjectMapper mapper = new ObjectMapper();
        DynamicForm dynamicForm = new DynamicForm();
        dynamicForm = dynamicForm.bindFromRequest();
        Dynamic dynamic = dynamicForm.get(); 
        //List<OneModel> list = new ArrayList<OneModel>();
        //List iterate=new ArrayList();

        String data = dynamic.getData().get("content").toString();
        try {
            JSONArray jsonArray = new JSONArray(data);
            for (int i = 0; i < jsonArray.length(); i++) {
                System.out.println(jsonArray.get(i));
        } }catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   

其結果如下。

["1001432","05-KALENJI-P1229","KALENJI","2","2014-11-09 09:37:14.379482",""],
["1001432","05-KALENJI-P1228","KALENJI","1","2014-11-09 09:37:14.379482",""],
["1001432","05-KALENJI-P1227","KALENJI","5","2014-11-09 09:37:14.379482",""]

我想一一提取值並將其分配給變量。 例如1001432,05-KALENJI-P1229,KALENJI,2,2014-11-09 09:37:14.379482。 這樣我就可以處理每個值。 請任何人在同一時間幫助我

您可以使用以下代碼:

//將您的json放入字符串變量“ data”中

JSONArray jsonArray=new JSONArray(data);
            if(jsonArray!=null && jsonArray.length()>0){
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONArray childJsonArray=jsonArray.optJSONArray(i);
                    if(childJsonArray!=null && childJsonArray.length()>0){
                        for (int j = 0; j < childJsonArray.length(); j++) {
                            System.out.println(childJsonArray.optString(j));
                        }
                    }
                }
            }

您可以通過循環遍歷數組,並獲得如下對象:

 JsonObject home = array.getJsonObject(index); //use index to iterate
 String num = home.getString("number"); //make number a static final variable

“數字”是值的名稱,它最初是與

.add("number", someString);

映入眼簾。

編輯:我建議閱讀文檔: Oracle Doc以及 文檔

看起來JSON數組是2維的。 嘗試這個:

JSONArray outerArray = new JSONArray(data);
for (int i = 0; i < outerArray.length(); i++) {
    JSONArray innerArray = outerArray.getJSONArray(i);

    for (int j = 0; j < outerArray.length(); j++) {
        System.out.println(innerArray.get(j));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM