정렬된 키를 사용하여 Go에서 JSON 마샬링
Python에서 정렬된 키를 사용하여 JSON을 생성하는 것은 sort_keys 매개변수를 다음으로 설정하는 것만큼 간단합니다. 진실. 하지만 Go는 어떻습니까? 이 질문은 Golang에서 유사한 동작을 달성하기 위한 옵션을 탐색합니다.
Go의 키 순서 지정 접근 방식
Python과 달리 Go의 JSON 패키지는 본질적으로 마샬링 중에 키를 순서 지정합니다. 구체적인 순서 규칙은 다음과 같습니다.
이 자동 키 순서 지정은 개발자가 Python에서처럼 sort_keys 매개변수를 명시적으로 지정할 필요가 없음을 의미합니다. 키 순서는 Go의 내부 정렬 알고리즘에 의해 결정됩니다.
Under the Hood
키 순서 구현은 인코딩/json/encode.go에서 찾을 수 있습니다. , 특히 359행부터. 여기서 인코더는 JSON을 직렬화하기 전에 맵 또는 구조체의 키를 반복하고 정렬합니다.
예
다음 Go 코드를 고려하세요.
package main import "encoding/json" type MyStruct struct { Field1 string Field2 int } func main() { data := map[string]int{"apple": 1, "banana": 3, "cherry": 2} jsonData, _ := json.Marshal(data) fmt.Println(string(jsonData)) }
이 코드의 출력은 be:
{ "apple": 1, "banana": 3, "cherry": 2 }
보시다시피 키는 추가 구성 없이 사전순으로 자동 정렬됩니다.
위 내용은 Go에서 마샬링할 때 정렬된 JSON 키를 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!