PlayFramework:将 json 转换为 json

PlayFramework: transform json to json

我有一个这样的json

{
"value.first" : "one",
"value.second" : "two",
"value.third" : "three"
}     

如何在 Scala/Play 中将其转换成这样? :

{
  "value": { 
   "first": "one",
   "second": "two",
   "third": "three"
  }  
}   

解决方案取决于必要的灵活性和对错误 json 格式的处理。也许以下内容适合您。

import play.api.libs.json._

val jsonInitial = Json.obj(
  "value.first" -> "one",
  "value.second" -> "two",
  "value.third" -> "three"
)

val primary: String = jsonInitial.keys.headOption
  .map{ _.split('.')(0) }
  .getOrElse("empty")

val secondary: Seq[(String, JsValue)] = jsonInitial.fields
  .map{ case (k, v) => (k.split('.')(1), v) }

val jsonModified = Json.obj(
  primary -> JsObject(secondary)
)