我有一个情况我有一个输入数据模型作为忽略JSON现场播放控制器斯卡拉
case class Person(name: String,
age: Int,
contact: Int)
但是,我想忽略名财产,因为我不会接受,但我需要它把它留在我后面注入的DB中。
一个选项可能是使其成为可选项,但在这种情况下,我需要为DB创建另一个模型,这是多余的。
任何人都可以提供JSONCombinator READ解决方案以避免根本读取字段吗?
感谢
我有一个情况我有一个输入数据模型作为忽略JSON现场播放控制器斯卡拉
case class Person(name: String,
age: Int,
contact: Int)
但是,我想忽略名财产,因为我不会接受,但我需要它把它留在我后面注入的DB中。
一个选项可能是使其成为可选项,但在这种情况下,我需要为DB创建另一个模型,这是多余的。
任何人都可以提供JSONCombinator READ解决方案以避免根本读取字段吗?
感谢
创建自定义Reads
和默认名称为空字符串:
import play.api.libs.json._ // JSON library
import play.api.libs.json.Reads._ // Custom validation helpers
import play.api.libs.functional.syntax._ // Combinator syntax
implicit val customReads: Reads[Person] = (
(JsPath \ "age").read[Int] and
(JsPath \ "contact").read[Int]
)((age, contact) => Person(name = "", age = age, contact = contact))
编辑
implicit val customWrites: Writes[Person] = (
(JsPath \ "age").write[Int] and
(JsPath \ "contact").write[Int]
)((person) => (p.age, p.contact))
再次感谢@Louis F. ...我会怎么写这个customWrite忽略这个名字..我知道这听起来很愚蠢,但我对这一切都非常陌生,并且无法想象它.. – boseAbhishek
看到我的更新时间戳 –
再次感谢您的快速回复......您真棒! – boseAbhishek
要么使这一个选项(不建议报告),无论是创建自定义阅读器与忽略字段默认它为空字符串(不推荐),或者创建另一个案例类'PersonCreation' w这只包含2个领域(最好的办法) –
干杯@路易F. ..谢谢你的回复...是的,看起来2班会很容易和好,但你有任何例子“我可以忽略该字段,并默认它清空字符串“。再次,非常感谢! – boseAbhishek