2014-11-25 89 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