2016-07-23 146 views
1

我試圖簡單地在模板中顯示一些數據。但顯然我錯過了一步。 列出Phoenix.HTML和模板可以僅包含整數表示字節,二進制文件:在Phoenix模板中顯示JSON數據

與HTTPoison

use HTTPoison.Base 

@expected_fields ~w(result) 

def process_url(url) do 
"url.json" 
end 

def process_response_body(body) do 
    body 
    |> Poison.decode! 
    |> Map.take(@expected_fields) 
    |> Enum.map(fn({k ,v}) -> {String.to_atom(k), v} end) 
end 

控制器

def index(conn, _params) do 
    response = ApiTest.get!("").body[:result] 
    render conn, "index.html", response: response 
end 

模板

<%= @response %> 

誤差請求或其他名單,得到無效的條目

那麼我在哪裏將數據轉換爲可以在模板中顯示的格式?

+0

你有一個HTML模板,並希望在正文中添加一個JSON或你想提供一個JSON響應? – Migore

+0

我有一個html模板,並希望從json響應添加數據。 –

回答

2

從錯誤消息中,它看起來像result鍵中的響應JSON是包含列表的列表。如果你想爲調試輸出,兩種常見的方法是使用Kernel.inspect得到像在iexPoison.encode!表示得到一個JSON表示:

<%= inspect(@response) %> 

<%= Poison.encode!(@response) %> 

您可能要包住整個事情<pre>標籤得到很好的包裹輸出inspect

<pre><%= inspect(@response) %></pre> 

或做+添加pretty: truePoison.encode!

<pre><%= Poison.encode!(@response, pretty: true) %></pre>