0
私はフィールドamount
を持つ要素を見つけるために何をする必要がありますどのような"Bar":[{"name":"Foo", "amount":"20.00"}, ...]
検索要素
は数に等しい(簡体字)形式のJSONを持っている(たとえば、 20.00
)、name
フィールドを返しますか?
私はフィールドamount
を持つ要素を見つけるために何をする必要がありますどのような"Bar":[{"name":"Foo", "amount":"20.00"}, ...]
検索要素
は数に等しい(簡体字)形式のJSONを持っている(たとえば、 20.00
)、name
フィールドを返しますか?
私は最善の解決策は、ケースクラスを使用することだと思います。私はこの小さなコードを書いて、これが役立つことを願っています。
// define below code in models package
case class Bar(name: String, amount: Double)
implicit val barReads: Reads[Bar] = (
(JsPath \ "name").read[String] and
(JsPath \ "amount").read[Double]
) (Bar.apply _)
// define below code in Application.scala
val jsonString =
"""
[{
"name": "MyName1",
"amount": 20.0
},
{
"name": "MyName2",
"amount": 30.0
}]
"""
val jValue = Json.parse(jsonString)
val Result = jValue.validate[Seq[Bar]].fold(errors => {
println(Json.obj("status" -> "Invalid Request!!", "message" -> JsError.toJson(errors)) + "\n")
},
input => { //input will return Seq[Bar]
for (i <- input) { // looping elements in Seq
if (i.amount == 20) {
println(i.name)
}
}
})
参考:https://www.playframework.com/documentation/2.5.x/ScalaJson