gpt4 book ai didi

java - 如何从使用 ArrayList 创建的 JSONObject 中获取所有值?

转载 作者:太空狗 更新时间:2023-10-29 16:17:21 24 4
gpt4 key购买 nike

我正在尝试使用 AsyncTask 从 json 数据中获取值。我只得到最后一个值,我不明白为什么......

我尝试用 for each 进行解析,但我做错了什么:

这是我的代码:

private class DecodeData extends AsyncTask<String, Void, String> {

protected ArrayList<HashMap<String, String>> decodedArray;
protected HashMap<String, String> decodedMap;
protected Iterator<String> it;
protected JSONArray m_Array;
protected JSONObject object;
protected String response;
protected String keys;
protected String value;

@SuppressWarnings("unchecked")
@Override
protected String doInBackground(String... params) {
response = params[0];
keys = "";
value = "";
object = null;
decodedArray = new ArrayList<HashMap<String, String>>();
try {
JSONArray arrayResp = new JSONArray(response);
for (int i = 0; i < arrayResp.length(); i++) {
decodedMap = new HashMap<String, String>();
it = arrayResp.getJSONObject(i).keys();
while (it.hasNext()) {
keys = (String)it.next();
value = Base64.DecodeStrToStr((String)arrayResp.getJSONObject(i).get(keys));
decodedMap.put("\""+keys+"\"", "\""+value+"\"");

object = new JSONObject(decodedMap.toString());
Log.i("DECODED MAP : ", object.toString());
m_Array = new JSONArray();
m_Array.put(object);
Log.i("M_ARRAY", ""+m_Array);
}
// decodedArray.add(decodedMap);
}
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// array = new JSONArray(decodedArray);
return m_Array.toString();
}

我正在使用 Volley 来获得响应。之后,我使用此响应创建一个 JSONArray,并从中获取所有键/值。我把它们都放在我的 HashMap 中。但是当我在这里放置键/值时:m_Array.put(object),它只放置我的 json 数据的最后一个值。有人知道我做错了什么吗?

最佳答案

请在开始 for 循环之前创建 JSONArray..

m_Array = new JSONArray();
JSONArray arrayResp = new JSONArray(response);
for (int i = 0; i < arrayResp.length(); i++) { ....

关于java - 如何从使用 ArrayList 创建的 JSONObject 中获取所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23659138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com