Странный формат ответа 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