Play& JSON:如何将(String,JsValue)序列转换为JsObject

时间:2014-04-02 06:55:32

标签: json scala playframework

鉴于以下scala序列...

val numbers = Seq[(String, JsValue)](("one", JsNumber(1)), ("two", JsNumber(2)), ("three", JsNumber(3)))

...我需要将其转换为以下JSON:

{
    "numbers": {
        "one": 1,
        "two": 2,
        "three": 3
    }
}

我试过这个......

val js = Json.obj("numbers" -> Json.obj(numbers))

...但它不起作用,我收到以下错误:

found:       Seq[(String, JsValue)]
required:    (String, JsValueWrapper)

我做错了什么?

1 个答案:

答案 0 :(得分:4)

你足够近了。使用此:

val js = Json.obj("numbers" -> JsObject(numbers))

输出:

js: play.api.libs.json.JsObject = {"numbers":{"one":1,"two":2,"three":3}}

Json.obj是构建JsObject的快捷方式,在您的情况下它并不方便。