json响应的奇怪格式

时间:2017-06-20 19:12:21

标签: elixir phoenix-framework elixir-poison

我有一个凤凰应用程序,基本上是API。我有以下观点:

defmodule TattooBackend.Web.API.V1.AccountView do
  use TattooBackend.Web, :view

  alias TattooBackend.Repo

  def render("my_account.json", %{account: account}) do
    account = account |> Repo.preload(:studio)
    studio  = account.studio

    %{
      id: account.id,
      email: account.email,
      studio: %{
        id: account.studio.id,
        name: account.studio.name
      }
    }
  end
end

当我在Postman中触发此端点时,它会返回以下格式的响应:

{
    "studio": {
        "name": "asdasdsadsa123123",
        "id": 4
    },
    "id": 1,
    "email": "chujbasd@o2.pl"
}

为什么“id”和“email”是最后一个?他们应该是第一个......

1 个答案:

答案 0 :(得分:1)

您无法保证退货订单,而且确实如此。如果这些值的顺序很重要,那么您的消费者应该按照预期的方式处理它们,以便每次都能正确完成。

  

地图中的键值对不遵循任何顺序

来源:https://hexdocs.pm/elixir/Map.html