我的应用程序中有一个Order对象,它采用JSON格式,如下所示。
{
"id" : "1001",
"amount" : 100.50
"customer" : {
"id" : "2001"
"name" : "Ned Stark"
}
}
这表示为以下POJO。
public class Order
{
private long id;
private double amount;
private Customer customer;
}
我使用GSON来序列化和反序列化这个POJO。一切正常,直到JSON中给出的输入值有效。
但是当我在JSON中给出一个无效的数据类型值时,GSON不会抛出特定于容易出错的字段的异常,而只会抛出一个通用异常,这会让应用程序不知道哪个字段值无效。
例如,如果我在JSON中给出“asdf”(而不是有效数字)的数量,在反序列化期间Gson只会抛出一个通用的NumberFormatException,但似乎没有提供异常发生的任何信息实际上当字段“amount”正在尝试使用输入值设置时。
当必须将apt错误传达给客户端时,这对应用程序通常很有用。我认为应该在GSON中实现这一目标。
是否有任何格式可以找到导致反序列化失败的特定字段?
答案 0 :(得分:0)
您可以在序列化之前编写验证程序,而不是依赖第三方库。
通过这种方式,您可以完全控制在出现错误时要传达的消息。