2013-09-07 2 views
9

당신은 내가 이동에서 유사한 옵션을 발견하지 않았습니다Go에 정렬 된 키가있는 JSON을 생성하는 방법은 무엇입니까? 파이썬에서

import json 
print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4, separators=(',', ': ')) 

를 수행하여 정렬 된 순서로 키를 사용하여 JSON을 생성 할 수 있습니다. 어떻게하면 비슷한 행동을 얻을 수있는 아이디어가 있습니까?

+0

사용하신 솔루션을 게시 할 수 있습니까? 나는'NewEncoder (...). Encode (structInstance)'를 사용했지만 출력 json 키가 정렬되지 않았습니다. –

답변

29

json 패키지는 마샬링 할 때 항상 키를 주문합니다. 특히 :

  • 지도 열쇠는 전적으로

  • 구조체 키는 구조체

구현에 정의 된 순서대로 정렬 화 여기에 살고 ATM 분류했다 :

+1

Noice. 왜 인코딩/json 문서가이 중요한 속성을 언급하지 않는지 궁금합니다. –

+0

이제 문서화되었습니다 : https://golang.org/pkg/encoding/json/#Marshal :지도 값이 JSON 객체로 인코딩됩니다. 지도의 키 유형은 문자열, 정수 유형 또는 encoding.TextMarshaler를 구현해야합니다. 위의 문자열 값에 대해 설명한 UTF-8 강제 변환을 적용하여 다음 규칙을 적용하여 맵 키를 JSON 객체 키로 정렬하고 사용합니다. – programaths

+2

구조체 키는 어떻게됩니까? 주문서는 문서화되어 있습니까? – updogliu

관련 문제