簡體   English   中英

JSONObject數據發送到JSONArray

[英]JSONObject data send to JSONArray

JSONObject data = response.getJSONObject("data");

            Iterator x = data.keys();
            JSONArray jsonArray = new JSONArray();

            while (x.hasNext()){
              String key = (String) x.next();
              jsonArray.put(data.get(key));
            }
            Log.d("TZX", String.valueOf(jsonArray));

我有像這樣的變量數據上的JSONObject

{"type":"DISKON","result":"DUPE","data":{"1":{"Code":"DISC2","Description":"DISC SALES","Value":0},"2":{"Code":"DISC1.5%","Description":"DISC1.5%","Value":1.5},"3":{"Code":"DISC 2%","Description":"DISC 2%","Value":2}}}

如何在JSONObject上獲取對象“值”以發送到變量“ jsonArray”上的JSONArray

抱歉我的語法我是新手謝謝

嘗試這個,

JSONObject data = response.getJSONObject("data");
JSONArray jsonArray = new JSONArray();

Iterator<?> keys = data.keys();

while (keys.hasNext()) {
    String key = (String) keys.next();
    if (data.get(key) instanceof JSONObject) {
        jsonArray.put(((JSONObject) data.get(key)).getString("Value"));
    }
}
Log.e("TZX", String.valueOf(jsonArray));

您正在使用數組,因此JsonArray直接使用JsonArray解析數據,如下所示

JSONArray array = response.getJSONArray("data");
List<Integer> values = new ArrayList<>();
   for(int i=0;i < array.length();i++){
        values.add(array.getJSONObject(i).getInt("Value"));
   }

您的可變data不是JSONObject,而是JSONArray。

data = [{"Code":"DISC2","Description":"DISC SALES","Value":0},{"Code":"DISC1.5%","Description":"DISC1.5%","Value":1.5},{"Code":"DISC 2%","Description":"DISC 2%","Value":2}]

從數組獲取JSONObject

JSONArray list = new JSONArray();
JSONObject obj = new JSONObject(data)
JSONArray jsonArray = new JSONArray(obj);

for(int i=0;i<json.length();i++){
    JSONObject e = jsonArray.getJSONObject(i);
    String value = e.getString("Value"));
    list.put(value);
}

暫無
暫無

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

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