給出的JSON值:你怎麼在多個JSON提取頂級域對象
val json = Json.parse(
"""
|[{
| "name" : "Agency Co",
| "worker" :{
| "FirstName" : "Bob",
| "age" : 44,
| "role" : null
| }
| },
| {
| "name" : "Agency Inc",
| "worker" :{
| "FirstName" : "Robby",
| "age" : 23,
| "role" : null
| }
| }]
""")
當你這樣做:
(json \\ "FirstName").map(_.asOpt[String].getOrElse("Cannot find field")).toList
和 「FirstNames」 列表會返回:
List("Bob", "Robby")
Howev呃,即使有兩個不同的事件發生,「(name)」字段上的(「\\」)遞歸查找也不會起作用。使用(「\」)將只返回第一次出現我需要一個「名稱」列表。
如何在不同的對象中返回多個頂級「名稱」值?
'.validate [列表[JsObject]。圖(_。flatMap {OBJ =>(OBJ \\「姓).asOpt [字符串]})'或'而驗證[列表[T]] ''T'是具有name屬性(或Value類)的case類 – cchantep
@cchantep感謝您領導正確的方向,但是我需要「name」字段而不是FirstName字段,並且使用validate將只返回一個JsResult並需要一個匹配的情況下,只返回JsResult。你提供的代碼沒有編譯。我已經解決了這個問題,我會在這個評論後提交一個帖子的答案,但謝謝你。 – ZDevelop94