0

以下は私のscalaコードのスニペットです。私はプレイ2.4を使用しています。以下は私の「メッセージ」valの出力です。

import play.api.libs.json._

              .map{ _ match {
                  case (Some( message :JsArray  ), x) => {
                       println(      message  )
                       println((message \\ "collectorId").map(_.as[Int]))
                   }
               }

出力:

["{\"id\":1,\"createdAt\":\"2015-11-11T16:18:58.789\",\"collectorId\":4}", "{\"id\":5 ,\"createdAt\":\"2015-11-11T22:35:52.300\",\"collectorId\":5}", "{\"id\":2,\"createdAt\":\"2015 -11-11T16:21:05.377\",\"collectorId\":4}", "{\"id\":3,\"createdAt\":\"2015-11-11T22:35:20.408\" ,\"collectorId\":2}", "{\"id\":4,\"createdAt\":\"2015-11-11T22:35:38.602\",\"collectorId\":4}" ]

ListBuffer()

抽出方法

「コレクターID」

Seq[Int] としての値。コードを実行すると、ListBuffer() として取得されます。

JsArray の代わりに JsObject が必要であることがわかりました。

サポートしてくれてありがとう。これが私が問題を解決する方法です。

case (Some( message :JsArray ), response ) => {
       (message \\ "collectorId").map{_ match { case JsNumber(s) =>  s.intValue() }
       }
}
4

1 に答える 1

2

使用する

(message \\ "collectorId" map(_.as[Int]) toSeq
//> res0: Seq[Int] = List(4, 5, 4, 2, 4)

はどこmessageですかJArray

于 2015-11-12T20:03:58.933 に答える