>백엔드 개발 >Golang >Gin에서 json으로 직렬화할 수 있는 정렬된 키-값 맵을 만드는 방법은 무엇입니까?

Gin에서 json으로 직렬화할 수 있는 정렬된 키-값 맵을 만드는 방법은 무엇입니까?

WBOY
WBOY앞으로
2024-02-08 23:36:10795검색

如何创建一个可以由 Gin 序列化为 json 的排序键值映射?

Go 언어를 사용하여 웹 애플리케이션을 개발할 때 데이터를 JSON 형식으로 직렬화하는 경우가 많습니다. 정렬된 키-값 매핑의 직렬화를 위해 Gin 프레임워크와 Golang의 맵 데이터 구조를 사용하여 이를 달성할 수 있습니다. 이 기사에서는 PHP 편집자 Banana가 Gin을 통해 JSON으로 직렬화할 수 있는 정렬된 키-값 맵을 생성하여 웹 애플리케이션을 더욱 유연하고 효율적으로 만드는 방법을 자세히 소개합니다. 구체적인 구현 방법을 살펴보겠습니다!

질문 내용

Gin을 사용하여 REST API를 만들고 있습니다. 내가 만들려는 응답은 다음과 같은 핵심 값 json 맵입니다.

으아악

내가 사용하는 데이터 모델은:

으아악

그리고 json으로 올바르게 직렬화됩니다:

으아악

거의.

map[string]Topic은 절대 올바른 순서로 값을 가져오지 않습니다. 정렬된 지도에서 생성합니다. 그러나 이것은 도움이 되지 않습니다.

으아악

언젠가 이 맵을 재현한 것 같고 키 순서가 약간 변경된 것 같습니다. Gin은 이 원시 키-값 맵을 올바르게 직렬화하는 것뿐이므로 다른 대안은 생각할 수 없습니다. github.com/umpc/go-sortedmap의 정렬된 맵은 전혀 직렬화되지 않습니다.

그럼 이 원래(네이티브?) 구조에서 키 순서를 어떻게 유지하나요? 아니면 Gin용 사용자 정의 직렬 변환기를 작성해야 합니까?

인터넷에서 해결책을 찾아보았습니다.

해결 방법

내 솔루션은 sortedmap.SortedMap 주위에 래퍼를 작성하고 이 래퍼에 대한 사용자 정의 MarshalJSON을 작성하는 것이었습니다.

으아악

MarshalJSON 정의에서는 SortedMapWrapper(*SortedMapWrapper 대신)를 사용해야 합니다. 그렇지 않으면 찾을 수 없습니다.

위 내용은 Gin에서 json으로 직렬화할 수 있는 정렬된 키-값 맵을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제