Странный формат ответа JSON

У меня есть приложение Phoenix, которое в основном 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

Когда я запускаю эту конечную точку в Почтальоне, она возвращает ответ в следующем формате:

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

Почему "id" и "email" являются последними? Они должны быть первыми...

1 ответ

Решение

Вам не гарантирован возврат заказа, и действительно, это нормально. Если порядок этих значений имеет значение, то ваш потребитель, вероятно, должен обработать их порядок так, как он ожидает, чтобы все делалось правильно каждый раз.

Пары ключ-значение на карте не следуют никакому порядку

источник: https://hexdocs.pm/elixir/Map.html

Другие вопросы по тегам