中識別無效的字段值我在我的應用程序中的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中的鍵客戶進行處理。 我在這裏錯過了什麼嗎? –