int 型 はnullにならないので、しょうがないのですが、optIntegerのようなものが欲しいわけです。
本件、タイトルのことを上司に聞いたら即、一番下にある参考サイトを見つけてくれました。
情報収集力に雲泥の差がありますね…。
JSONObjectにそんなものがなかったのでなければ、作りましょうというのが今回のお話です。
ついでにDouble型も作ります。
public class JSONUtil {
public static Integer optInteger(JSONObject jsonObject, String key) throws JSONException {
return (jsonObject.isNull(key)) ? null : jsonObject.getInt(key);
}
public static Double optWrapperDouble(JSONObject jsonObject, String key) throws JSONException {
return (jsonObject.isNull(key) || Double.isNaN(jsonObject.getDouble(key))) ? null : jsonObject.getDouble(key);
}
}
0 とか 入力なしをきちんとわけたいときってどうするのがいいのかいまだに迷います。
Stringは、””でいい気はしますが…。
個人的には、nullは、 すぐNullPointerExceptionにはまるため使いたくないので…。
<参考サイト>
【Stack Overflow】Json Parsing and Nullable int value in android