Как разобрать JSON из XML-ответа - PullRequest
0 голосов
/ 29 ноября 2010

Как мне разобрать json, удалив тег 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>

Я пробовал этот код в нем, результат принимается как строка ответа, которая находится в вышеуказанном формате xml

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

в ддмс это говорит: org.json.JSONException: нет значения для ErrorDescription

1 Ответ

1 голос
/ 29 ноября 2010

Вы неправильно анализируете JSON. Это правильно для чтения ErrorDescription:

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

Кроме того, нецелесообразно получать объект json, просто получая подстроку xml. Будет лучше выполнить регулярный xml-разбор, чтобы получить его,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...