gpt4 book ai didi

java - JSON 数组长度为-1,但我可以清楚地看到 JSON 中的对象

转载 作者:行者123 更新时间:2023-12-02 00:05:46 26 4
gpt4 key购买 nike

我的 JSON 数组的长度为 -1。我正在使用改造和 GSON 实现。下面是我收到的 JSON

`[{"info":"green"},[{"username":"abcd.abcd","coords":"-2.9089067,56.4395"}]]` 

我成功提取了“info”对象,但是当涉及到以下数组时,由于其长度,我无法提取数据。

Call < ResponseBody > call = uploadAPIs.responderList(0);

call.enqueue(new Callback < ResponseBody > () {
@Override
public void onResponse(Call < ResponseBody > call, Response < ResponseBody > response) {

String res;
boolean error = false;

if (!response.isSuccessful()) {
Log.d("Responders", "code: " + response.code());
} else {
try {
responders.clear();

res = response.body().string();
Log.d("Responders", "response " + res);

JSONArray mJsonArray = new JSONArray(res);

for (int i = 0; i < mJsonArray.length(); i++) {

if (i == 0 && mJsonArray.getJSONObject(i).has("info")) {
JSONObject object = mJsonArray.getJSONObject(i);
new Flags(getApplicationContext()).checkFlag(object.getString("info"));
} else {
JSONArray mJsonArrayItems = mJsonArray.getJSONArray(i);
Log.d("Responders", mJsonArrayItems.toString() + " - " + mJsonArrayItems.length());

for (int y = 0; i < mJsonArrayItems.length(); y++) {
Log.d("Responders", "inside");

JSONObject jsonObject = mJsonArrayItems.getJSONObject(y);
//String avatar = jsonObject.getString("profile_pic");
String username = jsonObject.getString("username");
//String full_name = jsonObject.getString("full_name");
//String department = jsonObject.getString("department");
String location = jsonObject.getString("coords");
responders.add(new ResponderObject("", username, "", "", location));
}
}
}
} catch (JSONException e) {
e.printStackTrace();
Log.d("Responders", "response " + e);
} catch (IOException e) {
e.printStackTrace();
error = true;
Log.d("Responders", "response " + e);
}
}

if (!error) {
handler.postDelayed(runnable, 3000);

if (!responders.isEmpty()) {
mapFragment.setResponders(responders);

if (location_enabled) {
//setting polyline
mapFragment.setPolyline();
}

respondersAdapter.notifyDataSetChanged();
}

} else {
handler.removeCallbacks(runnable);
}
}

@Override
public void onFailure(Call < ResponseBody > call, Throwable t) {
handler.removeCallbacks(runnable);
}
});

这是我收到的 mJsonArrayItems 日志

`[{"username":"abcd.abcd","coords":"-2.9089067,56.4395"}] - 1` <b/>

最佳答案

您在第二个循环中指定了错误的变量。尝试替换:
for(int y = 0; i < mJsonArrayItems.length(); y++)

for(int y = 0; y < mJsonArrayItems.length(); y++)

i是 1,所以 1 < mJsonArrayItems.length()1 < 1并且循环永远不会执行

关于java - JSON 数组长度为-1,但我可以清楚地看到 JSON 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58156820/

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