[英]Identify invalid field values during GSON deserialization
我的應用程序中有一個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,但似乎沒有提供任何信息,表明當字段“金額”正在嘗試使用輸入值進行設置 。
當應用程序必須將apt錯誤傳達給客戶端時,這通常對應用程序很有用。 我認為應該在GSON中實現這一目標。
有什么格式可以找到導致反序列化失敗的特定字段?
無需依賴第三方庫,您可以在序列化之前編寫驗證程序。
這樣,您可以完全控制發生錯誤時要傳達的消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.