Cette question peut ressembler à un double (il est pas), mais je suis coincé avec cette erreur de JSONException:Comment POST paramètres à l'aide JSONArrayRequest dans Volley - (chaîne d'erreur ne peuvent pas être convertis en jsonarray)
Value die of type java.lang.String cannot be converted to JSONArray.
J'utilise JsonArrayRequest
de Volley
pour obtenir jsonarray à partir d'un serveur. Mon JsonArrayRequest
jette l'erreur ci-dessus, comme je veux post
une chaîne au serveur et reçois jsonarray comme réponse. Ci-dessous est mon code:
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);
}
Le fichier PHP fonctionne correctement et il transmet la chaîne json à android.
L'erreur se produit quelque part dans le bloc onResponse
. Le même bloc fonctionne correctement lorsque vous utilisez StringRequest
au lieu de JsonArrayRequest
.
Une idée de ce qui cause exactement cette erreur? Toute aide ou orientation est très appréciée. * Je suis nouveau dans Android Volley et la façon dont cela fonctionne.
EDIT
Ceci est un format/syntaxe de la réponse url:
[
{"name":"test",
"number":"123",
"date":"2017-08-22"
},
{"name":"test1",
"number":"1234",
"date":"2017-08-23"
}
]
Je pense que le problème lié aux moyens de réponse Votre réponse est une chaîne de caractères et n'accepte que JSONArray. vérifier la réponse sur Postman ou RestClient. –
Publiez la réponse JSON. – fluffyBatman
essayer d'ouvrir l'URL de facteur, je pense que la réponse PHP n'est pas un JSON valide, la plupart du temps c'est un message d'erreur contient le mot 'die' le fameux PHP' ou mourir (...) ', plz partager le code PHP – Yazan