簡體   English   中英

識別GSON反序列化期間的無效字段值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM