スポンサーリンク

2017年3月29日

alchemist report 007

Header

About

ElmでJsonのリストデータをデコードする簡易サンプル。

Body

自作した関数
idDecoder =
  (Decode.field "id" Decode.int)

nameDecoder =
  (Decode.field "name" Decode.string)

emailDecoder =
  (Decode.field "email" Decode.string)

userDecoder =
  Decode.map3 User.Schema idDecoder nameDecoder emailDecoder

usersDecoder =
  Decode.list userDecoder

usersDataDecoder =
  (Decode.field "data" usersDecoder)
デコードしたデータを格納するモデル(?)
type alias Schema =
  { id : Int
  , name : String
  , email : String
  }
elm replの実行ログ

> import Json.Decode exposing (..)

> jsonList = "{\"data\":[{\"name\":\"hoge\",\"id\":1,\"email\":\"hoge@test.com\"},{\"name\":\"foo\",\"id\":2,\"email\":\"bar@test.com\"}]}" "{\"data\":[{\"name\":\"hoge\",\"id\":1,\"email\":\"hoge@test.com\"},{\"name\":\"foo\",\"id\":2,\"email\":\"bar@test.com\"}]}"     : String

> decodeString usersDataDecoder jsonList Ok ([{ id = 1, name = "hoge", email = "hoge@test.com" },{ id = 2, name = "foo", email = "bar@test.com" }])     : Result.Result String (List Model.User.Schema)

footer

実行ログの表示がバグってるので見づらいと思われる。(このブログのマークダウンで変換すると表示がバグる)
下記のリンク先にあるREADMEを見た方がわかりやすいかも
darui00kara/front_elm_back_phoenix

人気の投稿