2017-09-11 10 views
1

基本的な質問があれば申し訳ありません。 私はtestRegJsを印刷するために、次のコードを実行している:ScalaのJSONを反復する

val testRegJs: Seq[JsValue] = for (tr <- testReg) yield Json.toJson(tr) 

注:ここでのtestRegは、オブジェクトの特定の基準すなわち列のリストで、上記のコードでは、配列[JsValue]に変換されます。

出力:

List({ 
"registration": { 
    "id": 495, 
    "profile_id": "755" 
}, 
"test_center": [{ 
    "id": 487, 
    "registration_id": 495 
}] 
}, { 
"registration": { 
    "id": 599, 
    "profile_id": "360" 
}, 
"test_center": [{ 
    "id": 594, 
    "registration_id": 599 
}] 
}) 

私は上記のリストからIDを印刷したいです。どのようにそれを行うことができますか?

+0

を、彼らはすべて異なっているとして、あなたはScalaで使用しているJSONライブラリをタグ付け/教えてください。 –

+0

play.api.libs.json._ –

答えて

1

私は、所望の出力を得るために、以下の行を追加:

val regId = testRegJs.map(x => (x \ "registration" \ "id").as[Int]) 
0

IDを取得するのにtestRegJs \\ "id"を使用できます。

+0

@shivani上記の解決策をご確認いただけますか? – Learner

+0

そのようには動作しません。それは記号 "\\"を見つけることができないと言います。 –

+0

[JSON再帰パスを再生](https://www.playframework.com/documentation/2.6.x/ScalaJson#Recursive-path- \\)は、ここに示した例をご覧ください。 – Learner