Scala.jsでJSONをパースする方法
やりたいこと
Scala.jsでJSONをScalaのトレイトに変換したい。
変換前のJSON
{
"firstName": "James",
"lastName": "Maxwell"
}
変換後のトレイト
trait Person {
val firstName: String
val lastName: String
}
変換後のトレイトを定義する
次の手順で前出のトレイトをJavascriptと結びつける。
- @js.nativeアノテーションを付ける
- js.Objectを継承する
- 各メンバにjs.nativeに割り当てる
@js.native
trait Person extends js.Object {
val firstName: String = js.native
val lastName: String = js.native
}
パースしキャストする
- JSON.parseを使ってパースする
- パース結果をParson型にキャストする
val json = """
{
"firstName": "James",
"lastName": "Maxwell"
}
"""
val obj = JSON.parse( json )
val person = obj.asInstanceOf[Person]
println(s"Hello, ${person.firstName} ${person.lastName}")
実行結果
$> Hello, James Maxwell
0 件のコメント:
コメントを投稿