使用 json4s 将 JSON 中的字段替换为新对象
Replacing Fields in JSON with New Object using 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 来做到这一点?
下面的代码片段使用原生 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"}]}
我有一个 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 来做到这一点?
下面的代码片段使用原生 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"}]}