[英]JSON Reads combinator in Play scala 2.x doesn't work for Map[String, _]
[英]Play JSON Reads Combinator Syntax: access raw JsValue?
我正在使用Play的Reads
組合器語法讀取相當大的JSON結構。 這很好用,除了一個字段:
implicit val reads: Reads[SomeEntity] = (
(__ \ "name").read[String] and
// a lot more to read, omitted...
... and
(__ \ "settings").read[Seq[Setting]](settingsReads(<name here>))
)(...)
如您在上面看到的,自定義Reads[Setting]
(在這里: settingsReads
)需要json結構的name
字段-與第2行讀取的名稱相同。但是我如何訪問它呢? 可以使用(JsValue \\ "name").as[String]
手動完成,但是因此需要“原始” JsValue
,而使用組合語法時則不是這種情況。 還是我錯了? 有沒有更簡單的方法?
編輯: TL; DR:我想將實體的名稱 -String傳遞給settingsReads方法。
您的讀物[SomeEntity]:
implicit val reads: Reads[SomeEntity] = (
(__ \ "name").read[String] and
// a lot more to read, omitted...
... and
(__ \ "name").read[String].flatMap(name =>
(__ \ "settings").read[Seq[Setting]](settingsReads(name))
)
)(...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.