Erreur JSON «Valeur au résultat du type java.lang.string ne peut pas être convertie en jsonArray» dans Android
Question
J'ai utilisé le lien pour JSON RPC. Je reçois une réponse comme prévu. Mais quand j'essaie d'analyser la réponse, cela me donne une erreur JSON.
Mon code:
JSONEntity entity = new JSONEntity(jsonRequest);
HttpPost request = new HttpPost("http://192.168.1.150/jsondemo12/service.asmx");
request.setEntity(entity);
HttpResponse response = httpClient.execute(request);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity httpEntity = response.getEntity();
InputStream content = httpEntity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(content,"iso-8859-1"),8);
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
content.close();
} else {
Log.e(AndroidJSONActivity.class.toString(), "Failed to download file");
}
strJSONValue=builder.toString();
txtViewParsedValue.append("\n+++++++++++++\n"+strJSONValue+"\n");
try {
parseJSON();
} catch (JSONException e) {
Log.e("error","Error while parsing!!!");
e.printStackTrace();
}
Log.e("response", strJSONValue);
public void parseJSON() throws JSONException
{
String attr1="",attr2="";
jsonObject = new JSONObject(strJSONValue);
JSONArray result = jsonObject.getJSONArray("result"); <- Error in this line!!!
for(int i=0;i < result.length();i++){
JSONObject e = result.getJSONObject(i);
attr1 = "ExhibitorID: "+ e.getString("ExhibitorID");
attr2 = "ExhibitorName: "+e.getString("ExhibitorName");
}
strParsedValue=attr1+"\n"+attr2;
Log.d("Parse", attr1);
Log.d("Parse", attr2);
txtViewParsedValue.append("\n**********\nParsed Value: \n");
txtViewParsedValue.append(strParsedValue);
}
Le résultat que j'obtient dans "strjsonvalue" est le format de chaîne, sans les citations doubles de démarrage et de fin. Comme:
{"id":2,"result":"[
{\"ExhibitorID\":42, etc....}
]"}
La chaîne de résultats est selon l'exigence, mais je ne suis pas en mesure d'analyser la chaîne dans l'objet JSON selon l'exigence. Il donne une erreur dans Logcat: org.json.JSONException: Value <content of the string> at result of type java.lang.String cannot be converted to JSONArray
Aidez-moi, s'il vous plaît. Merci
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow