1
でJsArrayを作成し、塗りつぶし、私はこのJSONを変換しようとは再生/スカラ座で遊ぶ-JSONトランス
val result = Json.parse("""
{
"name": "John Doe",
"location": {
"type": "Point",
"coordinates": [48.858596, 2.294481]
}
}
""")
魔法を適用する方法任意のアイデア?ここに私が試したものです:
import play.api.libs.json._
import play.api.libs.json.Reads._
import play.api.libs.functional.syntax._
val transformer = {
val locationField = __ \ "location"
val lon = (locationField \ "lon").json.pick
val lat = (locationField \ "lat").json.pick
__.json.update((
(locationField \ "type").json.put(JsString("Point")) and
(locationField \ "coordinates").json.put(JsArray())).reduce
andThen
(locationField \ "coordinates").json.update(of[JsArray].map { // How to add lon/lat into JsArray?????
case JsArray(arr) => JsArray(arr :+ JsNumber(3L))
}
)
andThen (
(locationField \ "lon").json.prune and
(locationField \ "lat").json.prune).reduce
)
}
json.transform(transformer)
はここにコードを取得する:https://gist.github.com/chrissom/20c5aa254210d7c32f53479df6a66f68