LoginSignup
6
5

More than 5 years have passed since last update.

とっても小ネタ Elixirで、StringがKeyのMap を AtomがKeyのMap に変換してみた!

Posted at

小ネタです。

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普通に使えるんですね。。

下記とかをもう一度見直してみようと思います!

6
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5