[英]How can I apply a transformation to all elements in a json array while collecting the validation errors?
[英]Collecting Elements in a JSON Array
我和Argonaut有很大的關系。 我需要收集JSON數組中的所有元素。 例如,我在JSON中擁有此數據。
val data = """{"id": 1, "items": [{"name": "foo","price": 10},{"name": "bar","price": 20}]}"""
然后我需要將所有name
值收集到List中。 所以我得到了這個
List("foo", "bar")
這意味着我需要遍歷數組,因此我選擇Argonaut庫來執行此操作。 但很難知道API如何在Argonaut中運行。 到目前為止我有這個,
val data = """{"id": 1, "items": [{"name": "foo","price": 10},{"name": "bar","price": 20}]}""".parseOption
data flatMap (k =>
+k --\ "items" flatMap (_.downArray) map (- _)
)
但我不確定如何獲得價值觀。 請我在這里需要建議。
如果添加argonaut-monocle,您可以按如下方式輕松完成:
import argonaut._
import Argonaut._
import argonaut.JsonPath._
scala> val json: Option[Json] = """{"id": 1, "items": [{"name": "foo","price": 10},{"name": "bar","price": 20}]}""".parseOption
json: Option[argonaut.Json] = Some({"id":1,"items":[{"name":"foo","price":10},{"name":"bar","price":20}]})
scala> root.items.each.name.string.getAll(json.get)
res1: List[String] = List(foo, bar)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.