私はそれが厳密にSUPのparamのためですがfetch(1) |> decode_response
が動作しません行うエリキシル:文字列内のリスト項目の数をカウントする方法
iex(1)> fetch(1)
{:ok,
"{\"name\":\"Anabela\",\"surname\":\"Neagu\",\"gender\":\"female\",\"region\":\"Romania\"}"}
iex(2)> fetch(2)
{:ok,
"[{\"name\":\"Juana\",\"surname\":\"Su├írez\",\"gender\":\"female\",\"region\":\"Argentina\"},{\"name\":\"ðíðÁÐÇð│ðÁð╣\",\"surname\":\"ðƒð╗ð¥Ðéð¢ð©ð║ð¥ð▓\",\"gender\":\"male\",\"region\":\"Russia\"}]"}
毒を使用して、次のJSON文字列をデコードしようとしています1.
私は次のエラー
10:07:52.663 [error] GenServer Newsequence.Server terminating
** (BadMapError) expected a map, got: {"gender", "female"}
(stdlib) :maps.find("gender", {"gender", "female"})
(elixir) lib/map.ex:145: Map.get/3
lib/poison/decoder.ex:49: anonymous fn/3 in Poison.Decode.transform_struct/4
(stdlib) lists.erl:1262: :lists.foldl/3
lib/poison/decoder.ex:48: Poison.Decode.transform_struct/4
lib/poison/decoder.ex:24: anonymous fn/5 in Poison.Decode.transform/4
(stdlib) lists.erl:1262: :lists.foldl/3
lib/poison/decoder.ex:24: Poison.Decode.transform/4 Last message: {:getpeople, 1} State: {[], #PID<0.144.0>}
を持っています
My機能は以下の通りです:
def decode_response({:ok, body}) do
Poison.decode!(body, as: [%Personne{}])
end
私は、関数が
def decode_response({:ok, body}) do
Poison.decode!(body, as: %Personne{})
end
する必要があり、1に等しいのparamのためだと思う私は最終的に私のフェッチ機能により、指定された文字列内のタプルをカウントしているdecode_responseを選択するためにガードを使用することは良いアイデアだと思いました使用するが、私はどのようにわからない。
誰かが正しい方向に向いていますか?
よろしく、
ピエール
(以下のDogbertの解決策のように)もう少し簡単なものを探していましたが、あなたのことを注意深く見ていきます。本当に面白そうです。 – Tanc