Phoenix.Controller.json(conn, data)
을 예쁜 JSON으로 출력하는 방법이 있습니까?피닉스 컨트롤러가 예쁜 JSON을 출력하도록하십시오
7
A
답변
12
Phoenix.Controller.json/2
은 현재 JSON 인코더로 전달 될 수있는 옵션을 허용하지 않습니다.
모든 json
호출이 pretty JSON을 출력하도록하려면 Poison
주위에 래퍼를 만들고 Phoenix에 사용하도록 알릴 수 있습니다.
lib/my_app/pretty_poison_encoder_for_phoenix.ex
에서 추가
defmodule MyApp.PrettyPoisonEncoderForPhoenix do
def encode_to_iodata!(data) do
Poison.encode_to_iodata!(data, pretty: true)
end
end
그리고 config/config.exs
에서
config :phoenix, :format_encoders, json: MyApp.PrettyPoisonEncoderForPhoenix
서버를 다시 시작하면, 모든 json
통화가 자동으로 꽤 JSON을 인쇄해야합니다.
dev
에만 꽤 출력하고 싶다면 위의 코드를 config/dev.exs
에 추가하면됩니다. 그렇게하면 prod
은 여전히 예쁜 JSON을 출력합니다.
또한 Phoenix.Controller.json/2
가 무엇을 수행하는 간단한 래퍼를 생성 할 수 있습니다 (거의; 아래 참고 참조)뿐만 아니라 꽤 출력한다 :
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
사용법 :
def index(conn, _params) do
pretty_json conn, [%{a: 1, b: 2}, %{c: 3, d: 4}]
end
출력 :
➜ curl localhost:4000
[
{
"b": 2,
"a": 1
},
{
"d": 4,
"c": 3
}
]
참고 :이 함수는 콘텐츠 유형이 없으면 추가하는 기능이므로 정확히 Phoenix.Controller.json/2
과 같지 않습니다. here에서 일부 코드를 복사하여 동일한 로직을 사용할 수 있습니다.
관련 문제
- 1. json4s로 예쁜 JSON을 생성하려면 어떻게해야합니까?
- 2. 피닉스
- 3. 컨트롤러가 JQuery.ajax에서 JSON을 수신 할 수 없습니다.
- 4. 스프링 컨트롤러가 JSON을 반환 할 수 없습니다.
- 5. 예쁜 URL은
- 6. 아파치 피닉스 합류 문제
- 7. 피닉스 최소 병 사용
- 8. 비약/피닉스 변경 세션
- 9. 람다 대 피닉스
- 10. 부실 고정 자산은 피닉스
- 11. 피닉스 Ecto.NoResultsError 자동으로 상태
- 12. 피닉스 픽스처 json 파일
- 13. 엘 릭셔/피닉스 증식
- 14. 피닉스 4.8 문제
- 15. 피닉스 + 엑스 마키나 오류
- 16. 예쁜 인쇄 cljs
- 17. 부스트 성령 피닉스 기능 오류
- 18. 피닉스 : content_tag를 HTML로 렌더링 하시겠습니까?
- 19. 예쁜 URL을
- 20. Laravel 5.2 예쁜 URL
- 21. Laravel 4.1 : 컨트롤러가 올바른 json을 전달하더라도보기에 에코가 표시되지 않습니다.
- 22. API 컨트롤러가 유효하지 않은 JSON을 전달하면 null이 반환됩니다.
- 23. Python에서 ASCII 색상의 예쁜 인쇄용
- 24. Swagger UI : JSON을 정교화합니다.
- 25. 피닉스 링크 방식 : 부트 스트랩 드롭 다운에 내 피닉스 응용 프로그램에서
- 26. json에서 예쁜 문자 집합을 디코 팅하고 예쁜 인쇄
- 27. 이 페이지에서 어떤 컨트롤러가 작동하는지 어떻게 알 수 있습니까? MVC에 예쁜 새
- 28. 컴파일 오류시 피닉스 라이브 리로드가 깨짐
- 29. Apache 뒤에 피닉스 프레임 워크를 구성하는 방법
- 30. 스파크 피닉스 데이터 프레임을 만들 수 없습니다.