46

JSONObjectサーバーから受け取って操作する一連の値があります。ほとんどJSONObjectの場合、値 (統計としましょう)を取得Errorし、コードとエラーの説明を含むオブジェクトを返すこともあります。

エラーが返された場合に壊れないようにコードを構成するにはどうすればよいですか。私はこれを行うことができると思ったが、うまくいかない。

public void processResult(JSONObject result) {
    try {
        if(result.getJSONObject(ERROR) != null ){
            JSONObject error = result.getJSONObject(ERROR);
            String error_detail = error.getString(DESCRIPTION);
            if(!error_detail.equals(null)) {
                //show error login here
            }
            finish();
        }
        else {
            JSONObject info = result.getJSONObject(STATISTICS);
            String stats = info.getString("production Stats"));
        }
    }
}
4

5 に答える 5

127

使用.has(String)して.isNull(String)

保守的な使用法は次のとおりです。

    if (record.has("my_object_name") && !record.isNull("my_object_name")) {
        // Do something with object.
      }
于 2012-09-25T14:58:55.773 に答える
11

JSONObject には、キーを決定するために実行できる「Has」メソッドがあります。

これが機能するかどうかはわかりませんが、信頼できるようです。

public void processResult(JSONObject result) {

    if(result.has("ERROR"))
    {
        JSONObject error = result.getJSONObject("ERROR")
        String error_detail = error.getString("DESCRIPTION");

        if(error_detail != null)
        {
            //Show Error Login
            finish();
        }
    }
    else if(result.has("STATISTICS"))
    {
        JSONObject info = result.getJSONObject("STATISTICS");
        String stats = info.getString("Production Stats");

        //Do something
    }
    else
    {
        throw new Exception("Could not parse JSON Object!");
    }
}
于 2012-09-25T14:54:05.697 に答える