Go에서 JSON 값을 사용자 정의 스칼라 유형으로 역마샬링하는 것은 다음과 같은 이유로 어려울 수 있습니다. UnmarshalJSON 메서드 내에서 스칼라 값을 수정할 수 없습니다. 이 문제는 스칼라에서 파생된 유형에 대해 UnmarshalJSON을 구현할 때 발생하며 JSON의 문자열이 파생된 유형의 값으로 자동 변환되는 것을 방지합니다.
이 문제를 해결하려면 다음 단계를 따르세요.
다음은 PersonID에 대한 UnmarshalJSON 메서드의 수정된 구현입니다.
func (intValue *PersonID) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { return err } *intValue = Lookup(s) return nil }
또한 MyType 구조체의 JSON 태그가 일치하는지 확인하세요. 예제 JSON의 필드 이름입니다. 필요한 경우 예제에 사용된 JSON 태그와 일치하도록 json: "person"을 업데이트합니다.
이 단계에 따라 파생된 스칼라 유형에 대해 UnmarshalJSON을 구현하여 자동 변환을 활성화할 수 있습니다. JSON 문자열을 원하는 값 유형으로 변환합니다. 이를 통해 JSON 데이터를 사용자 정의 유형으로 손쉽게 구문 분석할 수 있습니다.
위 내용은 JSON 문자열을 사용자 정의 Go 스칼라 유형으로 어떻게 비정렬화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!