ホームページ  >  記事  >  バックエンド開発  >  JSON 文字列をカスタム Go スカラー型にアンマーシャリングする方法

JSON 文字列をカスタム Go スカラー型にアンマーシャリングする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-21 12:58:10323ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。