如何在反序列化JSON响应中处理Gson的NumberFormatException
2022-08-31 17:36:16
我正在阅读带有Gson的JSON响应,它有时会返回a,因为预期值设置为空字符串。现在我想知道处理这种异常的最佳方法是什么。如果该值为空字符串,则反序列化应为 0。NumberFormatException
int
预期的 JSON 响应:
{
"name" : "Test1",
"runtime" : 90
}
但有时运行时是一个空字符串:
{
"name" : "Test2",
"runtime" : ""
}
java 类如下所示:
public class Foo
{
private String name;
private int runtime;
}
反序列化是这样的:
String input = "{\n" +
" \"name\" : \"Test\",\n" +
" \"runtime\" : \"\"\n" +
"}";
Gson gson = new Gson();
Foo foo = gson.fromJson(input, Foo.class);
这会引发 a,因为返回的是空字符串而不是 int 值。com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: empty String
有没有办法告诉Gson,“如果你反序列化Type Foo
的字段运行时
并且有一个NumberFormatException,只需返回默认值0”?
我的解决方法是使用 a 作为字段的类型,而不是 ,但也许有更好的方法来处理此类错误。String
runtime
int