我正在尝试对返回多个项目或单个项目的 API 调用使用相同的 HTTPoison 调用。多个项目的响应将它们放入“项目”属性中,而单个项目仅将项目信息作为 JSON 字符串返回。
这是我的代码:
def process_url(method, id \\ 0) do
if id > 0 do
"http://api.call.com/#{method}/#{id}?key=API_KEY"
else
"http://api.call.com/#{method}?key=API_KEY"
end
end
def process_response_body(body) do
body
|> Poison.decode!(as: %{"items" => [%Item{}]})
|> Map.fetch!("items")
end
在 process_response_body 中,如何让它检查 JSON 响应中的 items 属性,如果它不存在,则以不同的方式处理它?