gpt4 book ai didi

java - 如何在 Volley 中使用 JSONArrayRequest 发布参数 - (错误字符串无法转换为 jsonarray)

转载 作者:行者123 更新时间:2023-11-30 00:23:35 24 4
gpt4 key购买 nike

这个问题可能看起来像一个重复的(它不是),但我被这个 JSONException 错误困住了:

Value die of type java.lang.String cannot be converted to JSONArray.

我正在使用 VolleyJsonArrayRequest 从服务器获取 jsonarray。我的 JsonArrayRequest 抛出上述错误,因为我想向服务器发布 一个字符串并接收 jsonarray 作为响应。下面是我的代码:

JsonArrayRequest jsonReq = new JsonArrayRequest(Request.Method.POST,
URL, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject JO = response.getJSONObject(i);
GetterSetter getterSetter = new GetterSetter();

getterSetter.setName(JO.getString("name"));
getterSetter.setNumber(JO.getString("number"));
getterSetter.setDate(JO.getString("date"));

myList.add(getterSetter);
} catch (JSONException e) {
e.printStackTrace();
}
}
myAdapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("myKey", myValue);

return params;
}
};
MySingleton.getInstance().addToRequestQueue(jsonReq);
}

PHP 文件运行正常,正在将 json 字符串传递给 android。

错误发生在 onResponse block 中的某处。当使用 StringRequest 而不是 JsonArrayRequest 时,相同的 block 可以正常工作。

知道究竟是什么导致了这个错误吗?非常感谢任何帮助或指导。* 我是 Android Volley 及其工作方式的新手。

编辑

这是 url 响应的格式/语法:

[
{"name":"test",
"number":"123",
"date":"2017-08-22"
},
{"name":"test1",
"number":"1234",
"date":"2017-08-23"
}
]

最佳答案

尝试使用 StringRequest,然后根据响应字符串创建您自己的 JSONArray:

new JSONArray(response);

您可以从文档中找到示例 StringRequest:

Sending a Simple Request

关于java - 如何在 Volley 中使用 JSONArrayRequest 发布参数 - (错误字符串无法转换为 jsonarray),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45832863/

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