2017-01-30 4 views
0

json4s를 사용하여 json 조작을 수행하는 스칼라 애플리케이션이 있습니다. 나는 새로운 대상으로 변환하고 싶은 몇 가지 필드가 있습니다. 예를 들어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를 사용하여 나는이 작업을 수행 할 수있는 모든 방법을?

답변

2

아래 니펫

JSON 오브젝트가 스칼라 시퀀스 객체를 생성함으로써 생성 방법 ~ 및 JSON 배열에 의해 서로 연결 튜플에 의해 형성되는 기본 json4s의 DSL을 사용한다. String, Number, Boolean과 같은 기타 기본 유형은 해당 유형의 스칼라에 매핑됩니다.

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"}]} 
관련 문제