【发布时间】:2011-04-13 02:50:00
【问题描述】:
我目前正在解析来自 Google Translate API 的 JSON 响应。我可以毫无问题地做到这一点。看到我没有太多的 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”的“catch”被抓住了。
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!");
}
谁能看出我哪里出错了?
谢谢!
【问题讨论】: