gson java.lang.NumberFormatException:空の文字列
Gson Java Lang Numberformatexception
題名:
Gsonシリアル化モデルがクラッシュする
エラーメッセージ:
java.lang.NumberFormatException:空の文字列
間違った理由:
タイプは均一ではありません。 gsonの背景文字列がintに変換されると、 ''がクラッシュを引き起こします
例えば:
{ 'name' : 'Test1', 'business_type' : '90' } { 'name' : 'Test1', 'business_type' : '' } @SerializedName('business_type') int businessType
解決:
Gson gson = new Gson()
と置換する
private Gson gson = new GsonBuilder() .registerTypeAdapter(int.class, new IntTypeAdapter()) .registerTypeAdapter(Integer.class, new IntTypeAdapter()).create()
ツールは次のとおりです
class IntTypeAdapter extends TypeAdapter { @Override public void write(JsonWriter out, Number value) throws IOException { out.value(value) } @Override public Number read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull() return null } try { String result = in.nextString() if (''.equals(result)) { return null } return Integer.parseInt(result) } catch (NumberFormatException e) { throw new JsonSyntaxException(e) } } }