簡體   English   中英

收集JSON數組中的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM