使用json4s用新对象替换JSON中的字段

时间:2017-01-30 14:17:03

标签: json scala json4s

我有一个scala应用程序,其中我使用json4s进行一些json操作。我有几个字段,我想转换成一个新对象。

例如,我有以下内容:

"start_datetime":"2016-12-11T01:00:05+0000",
"type":"absolute",
"start":"5",
"type":"offset"

想进入:

"time":[
 {
    "type":"absolute",
    "start_datetime":"2016-12-11T01:00:05+0000"
 },
 {
    "type":"offset",
    "start":"10"
 }
]

我可以用json4s做任何方式吗?

1 个答案:

答案 0 :(得分:2)

以下代码段使用原生json4s DSL

Json对象由方法~链接在一起的元组组成,Json数组是通过在Scala中创建Sequence对象创建的。其他基本类型(如String,Number,Boolean)将映射到scala中的相应类型

import org.json4s.native.JsonMethods._
import org.json4s.JsonDSL._

val json = "time" -> Seq(
("type" -> "absolute") ~ ("start_datetime" -> "2016-12-11T01:00:05+0000"),
("type" -> "offset") ~ ("start" -> "10")
)

scala> compact(render(json))
res3: String = {"time":[{"type":"absolute","start_datetime":"2016-12-11T01:00:05+0000"},{"type":"offset","start":"10"}]}