我正在使用Gson读取JSON响应,它返回somtimes a NumberFormatException因为预期int值设置为空字符串.现在我想知道处理这种异常的最佳方法是什么.如果值为空字符串,则反序列化应为0.
预期的JSON响应:
{
"name" : "Test1",
"runtime" : 90
}
Run Code Online (Sandbox Code Playgroud)
但有时运行时是一个空字符串:
{
"name" : "Test2",
"runtime" : ""
}
Run Code Online (Sandbox Code Playgroud)
java类看起来像这样:
public class Foo
{
private String name;
private int runtime;
}
Run Code Online (Sandbox Code Playgroud)
反序列化是这样的:
String input = "{\n" +
" \"name\" : \"Test\",\n" +
" \"runtime\" : \"\"\n" +
"}";
Gson gson = new Gson();
Foo foo = gson.fromJson(input, Foo.class);
Run Code Online (Sandbox Code Playgroud)
抛出一个com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: empty String因为返回一个空String而不是一个int值.
有没有办法告诉Gson," 如果你反序列化runtimeType 的字段Foo并且有一个NumberFormatException,只返回默认值0 "?
我的解决方法是使用a …