Gibt es eine Möglichkeit, Phoenix.Controller.json(conn, data)
zur Ausgabe hübscher JSON zu machen?Machen Sie Phoenix Controller zur Ausgabe hübscher JSON
Antwort
Phoenix.Controller.json/2
akzeptiert derzeit keine Optionen, die an den JSON-Encoder übergeben werden könnten.
Wenn Sie möchten, dass alle json
Aufrufe ziemlich JSON ausgeben, können Sie einen Wrapper um Poison
erstellen und Phoenix anweisen, es zu verwenden.
In lib/my_app/pretty_poison_encoder_for_phoenix.ex
hinzu:
defmodule MyApp.PrettyPoisonEncoderForPhoenix do
def encode_to_iodata!(data) do
Poison.encode_to_iodata!(data, pretty: true)
end
end
Und in config/config.exs
hinzu:
config :phoenix, :format_encoders, json: MyApp.PrettyPoisonEncoderForPhoenix
Nach dem Neustart des Servers, alle Ihre json
Anrufe automatisch ziemlich JSON drucken.
Wenn Sie nur eine hübsche Ausgabe in dev
möchten, können Sie stattdessen den obigen Code in config/dev.exs
hinzufügen. Wenn Sie das tun, wird prod
weiterhin nicht-hübsch JSON ausgeben.
Sie können auch einen einfachen Wrapper erstellen, die das tut, was Phoenix.Controller.json/2
tut (fast, siehe Hinweis unten), sondern macht auch die Ausgabe recht:
def pretty_json(conn, data) do
conn
|> put_resp_header("content-type", "application/json; charset=utf-8")
|> send_resp(200, Poison.encode!(data, pretty: true))
end
Verbrauch:
def index(conn, _params) do
pretty_json conn, [%{a: 1, b: 2}, %{c: 3, d: 4}]
end
Ausgang :
➜ curl localhost:4000
[
{
"b": 2,
"a": 1
},
{
"d": 4,
"c": 3
}
]
Hinweis: Dies entspricht nicht genau Phoenix.Controller.json/2
, da diese Funktion nur den Inhaltstyp hinzufügt, wenn einer nicht vorhanden ist. Sie können dieselbe Logik verwenden, indem Sie einen Code aus here kopieren.
- 1. Phoenix - Controller mit mehreren Rendern
- 2. Erschreckend redundante Phoenix-Controller
- 3. Phoenix Controller - Singular oder Plural?
- 4. Phoenix json gibt nur IDs
- 5. Force mongodb zur Ausgabe strenger JSON
- 6. getJSON console.log() zur Ausgabe json Struktur
- 7. Hübscher Druck named
- 8. Phoenix, Json und Unix Zeitstempel
- 9. Warum gibt Phoenix Controller einen JSON zurück, der nicht als JSON erkannt werden kann
- 10. neuen Controller nicht in Phoenix-Elixier arbeiten?
- 11. stub Guardian.Plug.EnsureAuthenticated für Phoenix Controller testen
- 12. current_user in Phoenix Controller per Plug geben
- 13. Weitergabe von Jquery JSON vom Codeigniter-Controller zur Ansicht
- 14. Machen Sie Teil in einem Controller
- 15. Machen Sie Winkel-Controller kontinuierlich durch Seitenaktualisierung
- 16. ocaml hübscher Drucker (Codeformatierer)
- 17. .NET XML Hübscher Drucker?
- 18. Laravel 5 - Hübscher Paginator
- 19. Hübscher Druck in Clojure
- 20. Zend Framework JSON Ausgabe
- 21. Machen Sie 2 Funktionen zur gleichen Zeit
- 22. Übergeben Sie HTML vom Controller zur Ansicht
- 23. PHP MVC-Controller Ausgabe
- 24. JSON-Ausgabe mit Groovy
- 25. ein hübscher Drucker "um sie alle zu regieren"
- 26. Hübscher Hover-Effekt (D3 Grafik)
- 27. machen Bildansicht Vollbildansicht Controller/Seitenansicht Controller (Swift)
- 28. Codeigniter Cache-Controller Ausgabe
- 29. Hübscher Drucker für T-SQL?
- 30. Anzeige von JSON-Daten in einer Phoenix-Vorlage