我要瘋了試圖播放框架2.2解析此JSON結構:播放2.2 JSON與組合器讀取:如何處理嵌套的可選對象?
val jsonStr = """{ personFirstName: "FirstName",
personLastName: "LastName"
positionLat: null,
positionLon: null }"""
我有2個case類:
case class Position(val lat: Double, val lon: Double)
case class Person(firstName: String, lastName: String, p: Option[Position])
正如你所看到的,位置是不是在人的情況下強制類。
我是想用這樣的
implicit val reader = (
(__ \ 'personFirstName).read[String] ~
(__ \ 'personLastName).read[String] ~
((__ \ 'positionLat).read[Double] ~
(__ \ 'positionLon).read[Double])(Position)
)(Person)
得到人的實例,但我很快就意識到我不知道如何應對Option[Position]
對象:有意將實例化一個Some(Position(lat,lon))
如果兩個'lat'和'lon'被指定並且不爲空,否則實例化None
。
你會如何處理?
感謝您的提示,但不幸的是我不能改變JSON結構,這就是爲什麼我不知道如何解決這個問題。 – Max