====== ElmでJson ======
Firebaseを扱ったり、http通信を行う場合、jsonを扱う必要が出てきます。
以下が必要になります。
-elm install elm/json
-JavaScriptからElmへデコード(かなりややこしい)
-ElmからJavaScriptへエンコード
-それぞれ、portでデータのやり取り
===== elm/jsonパッケージのインストール =====
elm install elm/json
===== JSONって何? =====
異なる言語、異なる場所でのデータをやり取りをするための記述方法の一つです。
{ ... } の中に、
-ダブルクォーテーション(")で囲んだ変数名 と
-値
をコロン(:)で区切り、ペアとします。ペアをカンマ(,)で連結することにより、例えば、下記のように記述します。
{ "name": "Tanaka", "age": 26 }
JSONデータは『文字列』です。
http://www.tohoho-web.com/ex/json.html
JSONとは
https://www.sejuku.net/blog/79911
JavaScriptのjson stringifyを完全に理解しよう!
かい
2018/11/27
===== Jsonを扱う際のJavaScriptとElmの型 =====
連想配列っぽいものを、
*JavaScriptでは『オブジェクト』
*Elmでは『レコード』
と呼びます。微妙に書き方や使用方法が異なります。
オブジェクト / レコード
JavaScript Elm
{ x: 3, y: 4 } { x = 3, y = 4 }
point.x point.x
point.x = 42 { point | x = 42 }
以下のまとめが、非常に参考になります。
https://qiita.com/boiyaa/items/7050eb93106a93a8dfb8
@boiyaa
2017年02月27日に更新
ElmとJavaScriptのシンタックス比較表
===== FirebaseからElmにデータを送るときのおおまかな流れ =====
elmアプリ(をJavaScriptにコンパイルしたファイル)からは直接、Firebaseとデータのやり取りをすることができません。
そのため、src/Main.elmとFirebaseプロジェクトの間を、index.html(ここにJavaScriptのコードを記載)に仲介させます。
Firebase ->(JSON)-> index.html ->(portまたはflag)-> src/Main.elm
===== 参考リンク =====
https://qiita.com/A_kirisaki/items/4c5343426d9de976ac72
@A_kirisaki
2017年12月15日に更新
ElmでTodoリストを作る
→elm 0.18ですが、ほぼ同じにできそうです。
===== リンク =====
目次:[[elm:index.html|Elm]]