Go에서 JSON을 임베디드 구조로 역정렬화
JSON 데이터를 임베디드 구조로 역직렬화하면 Golang에서 문제가 발생할 수 있습니다. struct:
<code class="go">type Outer struct { Inner Num int } type Inner struct { Data string }</code>
json.Unmarshal(data, &Outer{})를 사용할 때 Num 필드를 무시하고 Inner 필드만 역마샬링됩니다. 이런 일이 발생하는 이유를 이해하려면 Inner가 Outer에 포함되어 있다는 점에 유의하는 것이 중요합니다.
JSON 역마샬링 중에 라이브러리는 Outer에서 역마샬러를 호출하고, 차례로 Inner에서 역마샬러를 호출합니다. 결과적으로 Inner.UnmarshalJSON 함수는 전체 JSON 문자열을 수신하여 Inner에 대해서만 처리합니다.
이 문제를 해결하려면 Inner를 Outer의 명시적 필드로 만드세요. 이렇게 하면 JSON 역마샬링 중에 Inner 필드가 적절하게 역마샬링되고 Num 필드가 JSON 데이터를 기반으로 설정됩니다.
<code class="go">Outer struct { I Inner // Make Inner an explicit field Num int `json:"Num"` }</code>
이 수정을 통해 JSON 데이터를 다음을 포함하여 Outer 구조체로 올바르게 역마샬링할 수 있습니다. 내부 필드와 Num 필드 모두
위 내용은 Go에서 JSON을 임베디드 구조체로 역마샬링할 때 'Num' 필드가 무시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!