0

2 つの要素を持つ Json を作成する必要があります。最初の要素はリストで、2 番目の要素は単純なキーと値のペアです。私の出力は次のようになります。

"{
  "tables":[
  {"table": "sn: 2134"},
  {"table": "sn: 5676"},
  {"table": "sn: 4564"},
  ],
  "paid": 219
  }" 

この例では、最初の要素tablesは List oftableです。2 番目の要素はpaid.

libを使用して試しましplay.api.libs.jsonたが、2番目の要素を追加しているときにスタックしました。

私のコードは次のようになります。

 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に2番目の要素を追加する方法がわかりません。これを解決する方法についての提案。

4

1 に答える 1

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)
于 2016-12-20T12:41:57.903 に答える