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) } } }