小ネタです。
HTTPoisonを利用している際に、encode, decodeでごにょごにょとJsonとStructを行ったり来たりしている時に、おや、となったのでメモとして残します。
0. 利用したリポジトリ
1. おやっとなった事象
structから、mapにdecodeすると、keyに不要なバックスラッシュがつく。。
元のstruct
Issue{is_notified: false, number: 1512, owner: nil, repo: nil, title: "wait / block plugin for others builds or jobs", updated_at: "2016-03-02T19:55:10Z"}
Poison.encode!(issue)
するとこうなる
"{\"updated_at\":\"2016-03-02T19:55:10Z\",\"title\":\"wait / block plugin for others builds or jobs\",\"repo\":null,\"owner\":null,\"number\":1512,\"is_notified\":false}"
バックスラッシュいらない。。
2. 対応
いったん、Map.from_struct(issue)
して、さらに下記のような対応をしてあげた。
string_key_map = for {key, val} <- atom_key_map , into: %{}, do: {Atom.to_string(key), val}
め、めんどい。。。
PoisonのAPIの呼び方とか間違っているのかも。。
ここら辺の変換をうまいことやる方法をご存知の方いましたらご教示いただきたくm(_ _)m
3. 参考
4. 所感
それにしてもEnum.reduce
ばかり使ってましたが、comprehensions
普通に使えるんですね。。
下記とかをもう一度見直してみようと思います!