2015年9月20日日曜日

Scala.jsでJSONをパースする方法

Scala.jsでJSONをパースする方法
やりたいこと
Scala.jsでJSONをScalaのトレイトに変換したい。
変換前のJSON
            
 {
   "firstName": "James",
   "lastName": "Maxwell"
 }
          
変換後のトレイト
            
 trait Person {
   val firstName: String
   val lastName: String
 }
          
変換後のトレイトを定義する
次の手順で前出のトレイトをJavascriptと結びつける。
  1. @js.nativeアノテーションを付ける
  2. js.Objectを継承する
  3. 各メンバにjs.nativeに割り当てる

     @js.native
     trait Person extends js.Object {
       val firstName: String = js.native
       val lastName: String = js.native
     }
          
パースしキャストする
  1. JSON.parseを使ってパースする
  2. パース結果を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 件のコメント:

コメントを投稿