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 件のコメント:
コメントを投稿