1
我目前正在分析來自谷歌的JSON響應翻譯API。我能夠做到這一點沒有問題。看到我沒有太多的XML體驗(我更像是一個XML人),我無法弄清楚如何在JSON解析中實現一些錯誤處理。我正在使用JSON j2me庫。幫助JSON錯誤處理和谷歌翻譯API
這是一個成功的響應:
{"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!");
}
任何人都可以看到我要去哪裏錯了嗎?
謝謝!
感謝您的意見,creanium。以下是異常情況:org.json.me.JSONException:JSONObject [「responseData」]不是JSONObject。我想這是因爲responseData爲空而發生的?我只是想,我仍然可以檢查,看看它是否爲空,並採取相應的行動... – littleK 2011-04-13 03:30:11
@ behrk2我已根據您的評論更新了我原來的答案。看看是否有幫助。 – creanium 2011-04-13 03:44:44
這個技巧。感謝您的全力幫助! – littleK 2011-04-13 03:48:26