JSON string to table in template

Hi again :grin: Is there a way to pass my json string to a table in template?

:wave:

Assuming you are using phoenix, would this work (as a starting point)?

# in your controller
def some_action(conn, params) do
  # ...
  render(conn, "some_template.html", json: json) # json is a string
end

# in your template some_template.html.eex
<pre>
<%= @json %>
</pre> 

I was able to display the json string in template. What I want to do is that pass my json data and view it in a table in template. I have many fields and rows from my json.

Here’s my example json data. So assuming I’ll have a payor column, revenue source column, and transaction details column in my template.

{
  "Table": [
    {
      "RECID": 1,
      "PAYOR": "ASMSI",
      "REVENUESOURCE": "NEW MEMBER",
      "TRANSACTION_DETAILS": "Dependent",
      "TRANS_COUNT": 45.00,
      "RATE": 112.0,
      "TOTAL": 5040.0,
      "VAT": 0.00,
      "VATABLE": "N",
      "TOTAL_AMOUNT": 5040.0,
      "DATECREATED": "2018-02-01T00:33:30.26"
    },
    {
      "RECID": 2,
      "PAYOR": "ASMSI",
      "REVENUESOURCE": "NEW MEMBER",
      "TRANSACTION_DETAILS": "Extended Dependent",
      "TRANS_COUNT": 8.00,
      "RATE": 112.0,
      "TOTAL": 896.0,
      "VAT": 0.00,
      "VATABLE": "N",
      "TOTAL_AMOUNT": 896.0,
      "DATECREATED": "2018-02-01T00:33:30.26"
    },
    {
      "RECID": 3,
      "PAYOR": "ASMSI",
      "REVENUESOURCE": "NEW MEMBER",
      "TRANSACTION_DETAILS": "Principal",
      "TRANS_COUNT": 22.00,
      "RATE": 560.0,
      "TOTAL": 12320.0,
      "VAT": 0.00,
      "VATABLE": "N",
      "TOTAL_AMOUNT": 12320.0,
      "DATECREATED": "2018-02-01T00:33:30.26"
    }
]
}

Pardon my ignorance for technical terms in Elixir :sweat_smile:

Then try

# in your controller
def some_action(conn, params) do
  # ...
  %{"Table" => table} = Posion,decode!(json)
  render(conn, "some_template.html", table: table) # table is a map now
end

# in your template some_template.html.eex
<%= for row <- @table do %>
  <tr><%= row["RECID"] %></tr>
  <!-- etc -->
<% end %>
1 Like

I tried your example and I got this error:

no match of right hand side value: %{"Table" => [%{"DATECREATED" => "2018-02-01T00:33:30.26", "PAYOR" => "ASMSI", "RATE" => 112.0, "RECID" => 1, "REVENUESOURCE" => "NEW MEMBER", "TOTAL" => 5040.0, "TOTAL_AMOUNT" => 5040.0, "TRANSACTION_DETAILS" => "Dependent", "TRANS_COUNT" => 45.0, "VAT" => 0.0, "VATABLE" => "N"}, %{"DATECREATED" => "2018-02-01T00:33:30.26", "PAYOR" => "ASMSI", "RATE" => 112.0, "RECID" => 2, "REVENUESOURCE" => "NEW MEMBER", "TOTAL" => 896.0, "TOTAL_AMOUNT" => 896.0, "TRANSACTION_DETAILS" => "Extended Dependent", "TRANS_COUNT" => 8.0, "VAT" => 0.0, "VATABLE" => "N"}, %{"DATECREATED" => "2018-02-01T00:33:30.26", "PAYOR" => "ASMSI", "RATE" => 560.0, "RECID" => 3, "REVENUESOURCE" => "NEW MEMBER", "TOTAL" => 12320.0, "TOTAL_AMOUNT" => 12320.0, "TRANSACTION_DETAILS" => "Principal", "TRANS_COUNT" => 22.0, "VAT" => 0.0, "VATABLE" => "N"}, %{"DATECREATED" => "2018-02-01T00:33:30.26", "PAYOR" => "ASMSI", "RATE" => 112.0, "RECID" => 4, "REVENUESOURCE" => "RENEWAL", "TOTAL" => 4.76e4, "TOTAL_AMOUNT" => 4.76e4, "TRANSACTION_DETAILS" => "Dependent", "TRANS_COUNT" => 425.0, "VAT" => 0.0, "VATABLE" => "N"}.....

Sorry my bad again. Just a syntax error :sweat_smile:. Thank you once again! :tada: