写道:我是一个新手,斯卡拉/播放,并需要playframework的JSON帮助读取/写入。修改JSON读取和playframework 2.1
我用Json.reads [T]和Json.writes [T]宏定义JSON读取和写入我的班。不过,我想有一个属性名称(总是)映射不同。也就是说,我有属性命名我的班id
,我希望它被表示为_id
当对象转换成JSON,反之亦然。
是否有修改的方式读取/写入由Json.reads和Json.writes宏来实现这个生成的对象还是我不得不重写读取和写入手动只是有不同的命名一个属性?
编辑
让我试着更好地解释这个问题。考虑模型对象用户:
case class User (id: BigInt, email: String, name: String)
当序列化用户以JSON用于在静止的情况下,供应JSON的目的API的JSON应该是这样的:
{ “ID”:23432, “名 “: ”乔“, ” 电子邮件: “[email protected]” }
当序列化用户以JSON为目的,存储/更新/阅读形式MongoDB的JSON应该是这样的:
{ “_id”:23432, “名”: “乔”, “电子邮件: “[email protected]” }
换句话说一切都只是与蒙戈id
通信时应该是相同的表示为_id
。
我知道我可以手动为每个模型对象编写两组读写操作(Darcy Qiu在答案中建议使用一个用于web和另一个用于与Mongo通信),但是保持两组读取和这是除了id属性好像所以我不知道有很多重复的代码是否有更好的方法几乎相同的写入。
感谢您的回答。看看更新后的问题,我希望避免手动编写读/写两次,只有id属性序列化的区别。 –
我明白了。我能想到的最好方法是分别有两种不同的“格式”来处理这两种情况。 – darcyq
我最终得到了2组读写,正如答案中所建议的,所以我打算将其标记为已接受。 –