使用相同的键但不同的值在Play / Scala中创建json

时间:2012-07-06 01:50:47

标签: scala playframework

这就是我想要实现的目标:

{ "user-list" : {
      "user" : [
           "username" : "foo"
       },

       {
           "username" : "bar"
       }
     ]
  }
}

我正在使用play-framework和scala。

谢谢!

1 个答案:

答案 0 :(得分:1)

正如之前的评论者已经指出的那样,如果你的json代码无效(试试JSONLint)并且我们不知道它来自哪里(字符串?(案例),那么如何帮助你并不明显)数据库中的类?文字?)以及你想用它做什么。

靠近你的有效json代码是:

{
  "user-list": {
    "user": [
      { "username": "foo" },
      { "username": "bar" }
    ]
  }
}

根据您的结构包含的附加信息量,以下内容可能就足够了(V1):

{
  "user-list": [
    { "username": "foo" },
    { "username": "bar" }
  ]
}

甚至(V2):

{ "user-list": ["foo", "bar"] }

Play documentation之后,你应该能够用:

生成V1
val jsonObject = Json.toJson(
  Map(
    "user-list" -> Seq(
      toJson(Map("username" -> toJson("foo"))),
      toJson(Map("username" -> toJson("bar")))
    )
  )
)

和V2 with:

val jsonObject = Json.toJson(
  Map(
    "user-list" -> Seq(toJson("foo"), toJson("bar"))
  )
)