如何在使用 scala play 框架进行 json 转换时摆脱多余的转义字符?

How to get rid of extra escape characters while doing json transformation using scala play framework?

我想更新 json 字符串中存在的一些字段,我在 scala.But 中使用播放框架,当我更新 json 几个转义字符串字符时introduced.And 我不想要 json transformation.below 之后的这些字符是一些代码示例。

val jsonStringAsJsValue = Json.toJson("""{"counter_holders": {"Peter": 25}}""")
//play.api.libs.json.JsValue = "{\"counter_holders\": {\"Peter\": 25}}"

val jsonTransformer = (__ \"counter_holders" ).json.put(Json.toJson("""{"*****":25}"""))
//JsObject

jsonStringAsJsValue .transform(jsonTransformer).get.as[JsValue]
//Now getting the below string
//{"counter_holders":"{\"*****\":25}"}
//But I need this string
//{"counter_holders":"{"*****":25}"}

我将结果值转换为 JSvalue 或 JSString 转义字符正在获得 introduced.Any 这方面的帮助将非常好。

Json.toJson 用于将字符串转换为 json 值——一个 json 编码的字符串。你不想这样,你想将字符串解析为 json。为此,使用 Json.parse

你最终会得到

val jsonStringAsJsValue = Json.parse("""{"counter_holders": {"Peter": 25}}""")
val jsonTransformer = (__ \"counter_holders" ).json.put(Json.parse("""{"*****":25}"""))
jsonStringAsJsValue.transform(jsonTransformer).get.as[JsValue]