관리 메뉴

HAMA 블로그

스칼라 강좌 (26) - JSON 다루기 본문

Scala

스칼라 강좌 (26) - JSON 다루기

[하마] 이승현 (wowlsh93@gmail.com) 2016. 10. 19. 15:12


스칼라에서 JSON 데이터 다루기

* scala 기존제공하는것보다 json4s 나 spray-json 이 더 나은듯하다.


1. 디펜던시 추가 

import scala.util.parsing.json._


2. 문자열에서 Json 객체 (Map 타입) 로 변경  - (1)


def main(arg : Array[String]): Unit ={


val result = JSON.parseFull("""
{"name": "Naoki", "lang": ["Java", "Scala"]}
""")

result match {
case Some(e) => println(e)
case None => println("Failed.")
}

} //print 결과 : Map(name -> Naoki, lang -> List(Java, Scala)


3. 문자열에서 Json 객체 (Map 타입) 로 변경  - (2)

def main(arg : Array[String]): Unit ={


val msg = """

{ "callid" : 1 ,
"gatewayid" : "gatewayid-1" ,
"switchid" : "switch-id" ,
"content" : "hi"
}
"""

val result = JSON.parseFull(msg)

result match {
case Some(e) => val res1 = e.asInstanceOf[Map[String,Any]];
print(res1.get("callid"))
case None => println("Failed.")
}

} //print 결과 : Some(1.0)

asInstanceOf 를 통해서 형변환을 수행 하였다.


case Some(map: Map[String,Any]) => print(map.get("callid"))

Some 내부에서 형변환 할 수 도 있다.


4. Json 객체 (Map 타입) 에서 문자열로 변경 


의존성 추가 ( json4s 를 이용함) 

libraryDependencies += "org.json4s" %% "json4s-native" % "3.2.10"
libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.2.10"

import 

import org.json4s.jackson.Serialization

map 을  String 으로 변경

implicit val formats = org.json4s.DefaultFormats

Serialization.write(mutableMap)


Comments