[英]elixir Poison data type parse Json data
我是長生不老葯,很抱歉,我確定這很簡單。
我可以找到關於遵循這種模式的數據類型的任何信息:
%{"quoted_string" => "string_w_quotes"}
那叫什么
這是我遇到的問題。 我正在使用HTTPoison和Poison。 我調用Get請求並成功獲取JSON響應,然后將整個響應傳遞給Poison。 然后我根據葯水給我的圖案進行匹配。 我試圖說到可以說body.address
但出現錯誤。
以下是相關代碼:
# after call
...
body
|> Poison.decode!
|> case do
{:ok, %HTTPoison.Response{body: body}} ->
IO.puts "response received"
body.address
...
然后打印此:
...收到響應**(KeyError)鍵:在以下位置找不到地址:%{“ address” =>“ 123”,“ public” =>“ abc”} ...
所以我想我真正的問題是我該如何轉向
%{“地址” =>“ 123”,“公共” =>“ abc”}
進入
%{:address =>“ 123”,:public =>“ abc”}
這樣我就可以成功地使用它:
body.address
那正確嗎?
它是帶有二進制密鑰的映射。
body.address
是訪問映射中的原子鍵的縮寫。 但是,如果不存在該密鑰,它將不起作用。 最好使用body[:address]
,如果地圖沒有密鑰,則將返回nil。
對於二進制鍵,可以使用body["address"]
訪問該結構。 或者,您可以使用Map.get(body, "address")
。
修改后的代碼這樣說:
|> Poison.decode!(keys: :atoms!)
告訴毒葯,我希望鑰匙是原子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.