簡體   English   中英

elixir毒葯數據類型解析Json數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM