Golang에서 정렬된 맵을 마샬링할 때 JSON 키 정렬 관련 문제

WBOY
풀어 주다: 2024-02-09 10:00:28
앞으로
701명이 탐색했습니다.

在 Golang 中编组有序映射时排序 JSON 键的问题

JSON 키 정렬은 Golang에서 정렬된 맵을 마샬링할 때 흔히 발생하는 문제입니다. 데이터베이스나 다른 데이터 소스에서 데이터를 가져와 JSON 형식으로 마샬링할 때 출력 JSON 개체가 일관된 키 순서를 갖도록 키를 정렬해야 하는 경우가 많습니다. Golang에서 이 기능을 구현하는 것은 복잡하지 않습니다. 구조와 슬라이스의 조합을 사용하여 키 정렬 기능을 구현할 수 있습니다. 키-값 쌍을 구조체 슬라이스에 저장하고 sort 패키지를 사용하여 슬라이스를 정렬하면 JSON 키 정렬 목표를 쉽게 달성할 수 있습니다. 이 글에서는 Golang에서 정렬된 맵을 마샬링할 때 JSON 키를 정렬하는 방법을 설명하고 프로세스를 보여주는 간단한 예제 코드를 제공합니다.

질문 내용

주어진 JSON 조각을 반복해야 하며 배열에는 지도로 변환할 개별 항목이 포함되어 있습니다. 이것은 쉽습니다.

문제는 JSON 조각을 렌더링된 순서대로 클라이언트에 반환해야 한다는 것입니다.

OrderedMap 사용에 대한 몇 가지 가이드를 찾았지만 일관성이 없는 것 같습니다.

주문이 맞을 때도 있고 안될 때도 있어요.

https://go.dev/play/p/b9hmS9BEymy

누구에게 조언을 해주실 수 있나요? 로깅으로 판단하면 들어오는 JSON을 역마샬링하는 데 문제가 있을 수 있습니다

제가 처리해야 하는 실제 JSON은 매우 복잡하고 변형이 너무 많아 많은 작업이 필요하기 때문에 구조체를 사용하는 것을 정말 꺼려합니다.

해결 방법

map[string]interface{}。 golang 中的 Map 是一个 hashmap,所以这并不奇怪。您应该做的是创建一个 UnmarshalJSON 함수를 사용하고 사용자 지정 역마샬링을 수행하고 있으므로 json을 비정렬화하면 순서를 따르지 않습니다. 그렇지 않으면 순서를 유지할 수 없습니다.

지도를 제외한 다른 모든 유형에 대해 표준 역마샬링을 사용할 수 있으므로 더 쉬워집니다. 자세한 방법을 원하시면 설명드릴 수도 있습니다

위 내용은 Golang에서 정렬된 맵을 마샬링할 때 JSON 키 정렬 관련 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!