사용자 정의 MarshalJSON()을 사용하여 구조체 포함
경우 사용자 정의 MarshalJSON() 메서드를 사용하여 구조체를 포함하면 외부 구조체의 필드는 승격된 유형으로 승격되어 포함된 구조체의 MarshalJSON() 메서드를 재정의합니다. 이로 인해 외부 구조체를 마샬링할 때 예기치 않은 결과가 발생할 수 있습니다.
문제:
다음 구조체를 고려하세요.
직원 인스턴스 마샬링 예상치 못한 결과를 낳는다 결과:
출력:
Employee에 설정되었음에도 불구하고 jobRole 필드가 누락되었습니다. 인스턴스.
해결책:
옵션 1: 내장 유형에서 MarshalJSON() 방지
옵션 2: 외부 유형에 MarshalJSON() 구현
참고: 두 옵션 모두 수동으로 처리해야 하며 영향을 미칠 수 있습니다. 최종 JSON 출력의 필드 순서.
위 내용은 사용자 정의 MarshalJSON() 메서드를 사용하여 구조체를 포함할 때 JSON()을 올바르게 MarshalJSON()하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!