Go에서 JSON 문자열을 파생된 스칼라 유형으로 역마샬링
Go에서는 기존 유형에서 새로운 스칼라 유형을 파생시킬 수 있습니다. 그러나 이러한 유형에 대해 UnmarshalJSON을 구현하는 것은 표준 라이브러리의 제한으로 인해 어려울 수 있습니다.
이를 올바르게 처리하려면 UnmarshalJSON 메서드에 대한 포인터 수신기를 사용하는 것이 필수적입니다. 값 수신자는 메서드 내에서 변경된 내용을 유지하지 않습니다.
UnmarshalJSON에 전달된 인수는 JSON 텍스트입니다. 인용을 삭제하고 일반 문자열로 역마샬링할 수 있습니다.
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 }
또한 코드의 JSON 태그가 역마샬링하려는 JSON 데이터의 키와 일치하는지 확인하세요.
json.Unmarshal([]byte(`{"person": "Ralph", "count": 4, "greeting": "Hello"}`), &m);
이 단계를 수행하면 파생된 스칼라 유형에 대해 UnmarshalJSON을 효과적으로 구현하여 JSON 문자열을 다음 값으로 자동 변환할 수 있습니다. 맞춤 유형을 선택하세요.
위 내용은 JSON 문자열을 사용자 정의 Go 스칼라 유형으로 역정렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!