【问题标题】:Serializing a JSON string as JSON in Scala/Play在 Scala/Play 中将 JSON 字符串序列化为 JSON
【发布时间】:2014-10-07 05:47:51
【问题描述】:

我有一个字符串,其中包含一些任意 JSON。我想用我的 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

我不知道该怎么办。

【问题讨论】:

    标签: json scala playframework


    【解决方案1】:

    “{}”是一个空对象。

    所以,得到{"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":{}}
    

    【讨论】:

    • 不,抱歉。这只是我的任意字符串的一个示例。
    • 对不起。那时我不明白你的问题。
    • 嗯。所以在描述我的问题时,我简化了一个我认为不重要但很重要的细节。出于某种未知原因,我实际上在做Json.obj("foo" -> Map("bar" -> Json.parse("{}"))),而我应该做Json.obj("foo" -> Json.obj("bar" -> Json.parse("{}")))。您的回答帮助我重新评估了我的假设,因此感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2016-08-03
    • 2019-07-09
    • 2012-08-15
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多