使用Scala和JSON4S在JSON中操作数组

时间:2017-05-31 08:30:11

标签: scala json4s

我正在尝试使用Json4s在Scala中操作JSON对象。

说我的JSON看起来像这样:

ListViewItems

说我想为每个行程添加一个字段 - 就像这样:

Rows

我该怎么做?

2 个答案:

答案 0 :(得分:4)

有读者案例类:ItineraryReads(startTime,duration)

作家案例类:ItineraryWrites(startTime,duration,id)

data[count]["original"]["attr"]["path"]

这应该有效。把它写成ItineraryWrites列表:)

答案 1 :(得分:1)

transformField可用于merge

来解决这种情况
  val t = parse(s).transformField {
    case JField("itineraries", JArray(arr)) => // pattern match in there, more type safe
      val r = arr.zipWithIndex.map(f => f._1 merge JObject("id" -> JInt(f._2 + 1)))
      ("itineraries", r)
  }
  println(compact(render(t)))
  > {"data":{"plan":{"itineraries":[{"startTime":1494933289000,"duration":2174,"id":1},{"startTime":2494933289000,"duration":3174,"id":2}]}}}