Elixir 如何转换身体后的反应以获得元素?
我正在使用Elixir中的HTTPoison发出web请求:Elixir 如何转换身体后的反应以获得元素?,elixir,elixir-poison,Elixir,Elixir Poison,我正在使用Elixir中的HTTPoison发出web请求: HTTPpoison.post "http://localhost:3000/mymodels"," {\"param1\": \"#{value1}\" , \"param2\":\"#{value2}\"} ", [{"Content-Type", "application/json"}] 这是我得到的答复: {:ok, %HTTPoison.Response{body: "{\"id\":46,\"result\":18
HTTPpoison.post "http://localhost:3000/mymodels"," {\"param1\": \"#{value1}\" , \"param2\":\"#{value2}\"} ", [{"Content-Type", "application/json"}]
这是我得到的答复:
{:ok,
%HTTPoison.Response{body: "{\"id\":46,\"result\":18,\"param1\":\"liqueur\",\"param2\":\"quif\"}",
headers: [{"X-Frame-Options", "SAMEORIGIN"},
{"X-XSS-Protection", "1; mode=block"}, {"X-Content-Type-Options", "nosniff"},
{"Location", "http://localhost:3000/mymodels/46"},
{"Content-Type", "application/json; charset=utf-8"},
{"ETag", "W/\"05b8c75e0a5288c835651f48d4b8a80a\""},
{"Cache-Control", "max-age=0, private, must-revalidate"},
{"X-Request-Id", "1e8ae2d3-073a-4779-916a-edffc38f8b5a"},
{"X-Runtime", "0.530440"}, {"Transfer-Encoding", "chunked"}],
status_code: 201}}
我不熟悉Elixir,我的问题是我想从response.body中获取results元素
我不知道如何将这个字符串转换为数组/哈希或Elixir中的stuple。我在Enum上做了一些修改,但它似乎不起作用。response.body是一个JSON编码的字符串。首先需要使用JSON解析器将其解析为适当的Elixir数据结构。如果有,你会使用毒药。解码/1:
response.body是一个JSON编码的字符串。首先需要使用JSON解析器将其解析为适当的Elixir数据结构。如果有,你会使用毒药。解码/1:
非常感谢Dogbert,在我再次服用毒药后。我觉得长生不老药很棒。非常感谢狗伯特,在我重新服用毒药后。我认为长生不老药很好。
iex(3)> response.body
"{\"id\":46,\"results\":18,\"param1\":\"liqueur\",\"param2\":\"quif\"}"
iex(1)> body = "{\"id\":46,\"results\":18,\"param1\":\"liqueur\",\"param2\":\"quif\"}"
"{\"id\":46,\"results\":18,\"param1\":\"liqueur\",\"param2\":\"quif\"}"
iex(2)> json = Poison.decode!(body)
%{"id" => 46, "param1" => "liqueur", "param2" => "quif", "results" => 18}
iex(3)> json["results"]
18