2010-11-29 19 views
0

Comment puis-je analyser JSON en supprimant la balise xmlcomment analyser JSON de la réponse xml

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

<soap:Body> 

<AddUserResponse xmlns="http://abcd.com/"> 

<AddUserResult> 

{"clsError":{"ErrorCode":110,"ErrorDescription":"Email Already Exist"},"UserID":-1} 

</AddUserResult> 

</AddUserResponse> 
</soap:Body> 

</soap:Envelope> 

J'ai essayé ce code dans ce résultat est considéré comme chaîne de réponse qui est au format XML ci-dessus

String temp = result.substring(282, (length - 62)); 
System.out.println(temp); 
JSONObject object = (JSONObject) new JSONTokener(temp).nextValue(); 
String query = object.getString("ErrorDescription"); 

en DDMS il dit: org.json.JSONException: pas de valeur pour ErrorDescription

+0

Lorsque vous étiez en train de taper votre question, à droite il y avait une boîte avec le titre ** Comment formater **. Il y a aussi un lien ** [?] ** juste au-dessus de la zone de texte Poser une question. Les deux valent la peine d'être lus. C'est votre quatrième question, vous devriez avoir vos jambes maintenant. –

Répondre

1

Vous n'êtes pas correctement le JSON analyse pas. Cela est vrai pour la lecture du ErrorDescription:

JSONObject object = (JSONObject) new JSONTokener(temp).nextValue(); 
JSONObject childObject = object.getJSONObject("clsError");   
query = childObject.getString("ErrorDescription"); 

En outre, il ne convient pas d'obtenir l'objet JSON en obtenant simplement une sous-chaîne du xml. Il vaudra mieux faire une analyse syntaxique xml pour le récupérer,