JSON 문자열을 사용자 정의 Go 스칼라 유형으로 역정렬화하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-21 12:58:10
원래의
321명이 탐색했습니다.

How to Unmarshal JSON Strings into Custom Go Scalar Types?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿