在Scala / Play中将JSON字符串序列化为JSON

时间:2014-10-07 05:47:51

标签: json scala playframework

我有一个带有一些任意JSON的String。我想用我的JSON字符串构造一个JsObject作为JSON对象值,而不是字符串值。例如,假设我的任意字符串是一个无聊{}我想要{"key": {}}而不是{"key": "{}"}

以下是我试图这样做的方法。

val myString = "{}"
Json.obj(
  "key" -> Json.parse(myString)
)

我得到的错误是

type mismatch; found :
  scala.collection.mutable.Buffer[scala.collection.immutable.Map[String,java.io.Serializable]]
  required: play.api.libs.json.Json.JsValueWrapper

我不知道该怎么办。

1 个答案:

答案 0 :(得分:2)

“{}”是一个空对象。

所以,要获得{"key": {}}

Json.obj("key" -> Json.obj())

<强>更新

也许你有一个旧版本的Play。这适用于Play 2.3.x:

scala> import play.api.libs.json._
scala> Json.obj("foo" -> Json.parse("{}"))
res2: play.api.libs.json.JsObject = {"foo":{}}