В настоящее время я анализирую ответ JSON от Google Translate API. Я могу сделать это без проблем. Ввиду того, что у меня нет большого опыта работы с XML (я больше разбираюсь в XML), мне трудно понять, как реализовать некоторую обработку ошибок в моем анализе JSON. Я использую библиотеку JSON j2me.
Вот успешный ответ:
{"responseData": {"translatedText":"Teks te vertaal ...","detectedSourceLanguage":"en"}, "responseDetails": null, "responseStatus": 200}
А вот и неудачный ответ:
{"responseData": null, "responseDetails": "could not reliably detect source language", "responseStatus": 400}
Итак, если перевод не удастся, я хочу поместить значение responseDetails в строку. Вот мой код синтаксического анализа, который в настоящее время неправильно анализирует responseDetails. Вместо этого ловится «улов» попытки.
try {
JSONObject responseObject = new JSONObject(response);
if (responseObject != null) {
JSONObject responseData = responseObject
.getJSONObject("responseData");
if (responseData != null) {
String translatedText = responseData
.getString("translatedText");
Notify.alert(translatedText);
} else {
String responseDetails = responseObject
.getString("responseDetails");
Notify.alert(responseDetails);
}
}
} catch (Exception e) {
Notify.alert("Unable to translate!");
}
Кто-нибудь может увидеть, где я иду не так?
Спасибо!