>  기사  >  백엔드 개발  >  Go에서 대소문자 구분 JSON 비정렬화를 달성하는 방법은 무엇입니까?

Go에서 대소문자 구분 JSON 비정렬화를 달성하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-09 07:43:02507검색

How to Achieve Case-Sensitive JSON Unmarshal in Go?

Go에서 대소문자 구분 JSON Unmarshal

Go의 json.Unmarshal 함수는 JSON 데이터를 구조체로 역직렬화하는 방법을 제공합니다. 기본적으로 Unmarshal은 JSON 키와 구조체 필드 이름 또는 태그 간에 대소문자를 구분하지 않는 일치를 수행합니다. 그러나 대소문자를 구분하여 일치시키는 것이 바람직한 경우도 있습니다.

문제

"e", ""와 같은 태그가 포함된 JSON 데이터를 수신했다고 가정해 보겠습니다. 이자형". "e" 태그가 있는 개체를 비정렬화하고 "E"가 있는 개체를 무시하려고 합니다. 기본 대소문자 구분 일치를 사용하면 Unmarshal은 두 태그를 모두 허용하고 이에 따라 구조체를 역마샬링합니다.

해결책

안타깝게도 표준 json 라이브러리는 현재 대소문자를 지원하지 않습니다. Unmarshal에 대한 민감한 일치. 공식 문서에 따르면:

To unmarshal JSON into a struct, Unmarshal matches incoming object keys to the keys used by Marshal (either the struct field name or its tag), preferring an exact match but also accepting a case-insensitive match.

따라서 표준 json 라이브러리를 사용하여 대소문자 구분 일치를 비활성화할 수 있는 방법은 없습니다.

위 내용은 Go에서 대소문자 구분 JSON 비정렬화를 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.