我有一個json模型,其中某些屬性的內容取決於其他屬性。事情是這樣的:json4s部分解析json
"paymentMethod": "CREDIT_CARD",
"metaData": {
"cardType": "VISA",
"panPrefix": "",
"panSuffix": "",
"cardHolder": "",
"expiryDate": ""
}
所以當paymentMethod
等於CREDIT_CARD
,在metadata
對象將作爲描述包含屬性。如果使用其他付款方式,則會有不同的元數據。
我想以面向未來的方式處理這種情況。我試圖做的是不立即解析metadata
字段,但保持它以某種方式「unparsed」,直到我解析paymentMethod
字段。然後我會採取元數據並應用適當的解析方法。
但是,我不知道哪種類型用於Scala類字段中的這種「遲分析」屬性。我試過String
,JsonInput
,JObject
,它們都不適合(要麼不編譯,要麼不能解析)。我可以使用哪種類型的想法?或換句話說:
case class CreditCardMetadata(
cardType: String,
panPrefix: String,
panSuffix: String,
cardHolder: String,
expiryDate: String)
case class PaypalMetadata(...) // etc.
case class PaymentGatewayResponse(
paymentMethod: String,
metadata: ???)
嘿,謝謝,你的迴應使我走上了正軌。我只需要一些臨時的解決方案,所以我貼我自己的答案基於你的,就說明了這可以用更少的代碼來實現。 對於其他人讀這篇文章,這個答案是正確的道路要走,但如果你需要的東西很快,我的答案會工作,太。 – Haspemulator