2014-11-25 108 views
0

我在scala中爲我的REST服務使用噴霧。我有一個案例類,User,其中包含用戶名,名字,姓氏,密碼等字段。我想在轉換爲json時刪除字段password。我正在使用muster庫進行json轉換。我怎樣才能做到這一點?在轉換爲json時隱藏案例類的特定字段

我不想創建案例類的副本並重置密碼字段。

回答

0

有一個模型用於數據的內部表示,第二個模型用於導出它們之間的數據和映射。這一切都將發生在你選擇的json序列化框架之前。

如果你堅持使用單一模型,那麼將密碼設爲Option[String](假設它是當前的字符串),並且當你要導出時,請執行user.copy(password = None)以清除密碼。我不知道它是怎麼做到的,但在spray-json中,如果選項爲None,則該選項將不會被序列化。

+0

感謝您的回覆。但是我在傑克遜(爪哇)尋找類似'@JsonIgnore'和'@JsonProperty'的東西。它在轉換爲json時自動忽略該字段。 – 2014-11-26 04:53:46

+1

@YaduKrishnan我建議遵循Gangstead的建議。在我使用'spray-json'的項目中,我有一對'model.User'和'serialization.UserWire'事例類。如果您需要確保客戶端不會因爲改變了服務器的內部邏輯而被破壞,那麼這種分離也簡化了未來的重新分解。 – expert 2014-12-12 15:39:22