私は他の誰かによって書かれたJsonパーサークラスを持っています。このチェッカーメソッドでは何か悪いにおいがします:
public boolean isCorrectResponse() {
try {
if (localResponse != null) {
JSONObject jResponse = new JSONObject(localResponse);
if (jResponse.get("result") instanceof JSONObject) {
JSONObject jResult = jResponse.getJSONObject("result");
if (jResult.get("error") instanceof JSONArray) {
JSONObject jError = jResult.getJSONArray("error").getJSONObject(0);
if (!jError.toString().equals("")) {
String errorMsg = jError.getString("msg");
String errorCode = jError.getString("code");
showErrorMessage(errorCode + "; " + errorMsg);
return false;
}
}
}
} else {
return false;
}
} catch (JSONException e) {
L.e("ERROR: on isCorrectResponse method!");
e.printStackTrace();
//return false; //Added myself Google Json should throw error shouldn't it??? Which means response was wrong???
}
return true;
}
作成の最初の試行でエラーがスローされ
JSONObject jResponse = new JSONObject(localResponse);
、すべてが即座に解決されるべきではありませんか (false を返すだけでよい)。これらの try body の追加チェックはまったく必要ですか? 私は Google Gson ライブラリを使用して Json を解析し、Android 向けに開発しています。