这个问题看起来可能是重复的(不是),但我被这个JSONException错误所困扰:
类型为 java.lang.String 的值 die 无法转换为 JSON 数组。
我正在使用< code >凌空的< code>JsonArrayRequest从服务器获取jsonarray。我的< code>JsonArrayRequest抛出了上面的错误,因为我想< code>post一个字符串到服务器并接收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
块中的某个地方。使用StringRequest
而不是JsonArrayRequest
时,同一块工作得很干净。
任何想法究竟是什么导致了这个错误?任何帮助或指导都非常感谢。*我是Android排球及其工作方式的新手。
编辑
这是 url 响应的格式/语法:
[
{"name":"test",
"number":"123",
"date":"2017-08-22"
},
{"name":"test1",
"number":"1234",
"date":"2017-08-23"
}
]
尝试使用StringRequest,然后从响应字符串创建自己的JSONArray:
new JSONArray(response);
您可以从文档中找到示例StringRequest:
发送简单的请求
问题内容: 我是Json解析的新手。我正在尝试使用读取json数据,但是在发送参数和使用POST方法时我有点困惑。在我可以发送方法类型,URL,参数的情况下,但是在如何发送诸如用户名和密码之类的参数时,我使用POST方法。请帮帮我。这是我编写的代码。 我的json数据就像: 参数未发送。请帮我解决这个问题。先感谢您。 问题答案: 当使用JsonArrayRequest和POST方法时,这解决了我传
问题内容: 我需要使用JSONObject发出请求,如下所示: 预期的响应是JSONArray。使用Volley,我无法使用JSONObject参数创建JsonArrayRequest。 在以这种方式发出请求之前: 但是现在是JSONObject包含JSONObject。 现在如何使用Volley发出此请求? 问题答案: 我创建了一个自定义齐射请求,该请求接受JSONObject作为参数。 Cus
给定数字的字符串表示形式,如何将其转换为TypeScript中的类型?
问题内容: 我想这些类型的值,转换的,,等多项。在JavaScript中,我们可以使用,但是PHP中有可用的类似方法吗? 问题答案: 通常不需要这样做,因为PHP在大多数情况下都会为您强制类型。对于那些你想显式转换型的情况下,_投_它:
问题内容: 我可以将表示布尔值(例如,“ true”,“ false”)的字符串转换为JavaScript中的固有类型吗? 我有一个隐藏的HTML表单,可根据用户在列表中的选择进行更新。此表单包含一些表示布尔值的字段,并使用内部布尔值动态填充。但是,一旦将此值放入隐藏的输入字段中,它将成为一个字符串。 确定字段的布尔值(将其转换为字符串后)的唯一方法是依赖于其字符串表示形式的文字值。 有没有更好的