我需要创建一个包含2个元素的Json。 First元素是List,第二个元素是简单的键值对。 我的输出如下:
"{
"tables":[
{"table": "sn: 2134"},
{"table": "sn: 5676"},
{"table": "sn: 4564"},
],
"paid": 219
}"
在示例中,第一个元素是tables
,它是table
的列表。第二个元素是paid
。
我使用play.api.libs.json
lib尝试了它,但在添加第二个元素时卡住了。
我的代码如下:
case class Input(table:String){
override def toString = s""""table" : "sn: $table""""
}
implicit val userFormat = Json.format[Input]
val inputsSeq = Seq(Input(table1),Input(table2),Input(table3))
val users = Json.obj("tables" -> inputsSeq)
println(users)
此代码将Json打印为:
"{
"tables":[
{"table": "sn: 2134"},
{"table": "sn: 5676"},
{"table": "sn: 4564"},
]
}
我不确定,如何在这个json中添加第二个元素。任何建议如何 解决这个问题。
答案 0 :(得分:0)
Json.obj
接受多对(String, JsValueWrapper)
作为其参数:
object Json {
...
def obj(fields: (String, JsValueWrapper)*): JsObject = JsObject(fields.map(f => (f._1, f._2.asInstanceOf[JsValueWrapperImpl].field)))
...
}
所以你可以添加这两个元素:
val users = Json.obj("tables" -> inputsSeq, "paid" -> 219)