中识别无效的字段值我在我的应用程序中的Order对象这需要JSON格式如下。GSON反序列化
{
"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,但似乎没有提供任何有关异常发生的信息当字段“金额”正尝试设置与输入值。
这将是通常有用的应用程序时,它具有易于错误传达给客户端。我认为在GSON中应该有一些实现。
有没有发现,已经引起反序列化失败的特定字段中的任何格式?
同样的问题,我解决了只是添加对象映射器依赖和使用它转换。你也可以在这里配置多个东西。 – Jango
谢谢Jango。我试过ObjectMapper。这会在JsonMappingException的toString调用中打印字段名称,但它似乎并未将JSON字段作为该异常中的数据公开 - 例如exception.getJSONKeyOfInvalidData() - 以便我可以将此设置为响应JSON中的键客户进行处理。 我在这里错过了什么吗? –