ホームページ > バックエンド開発 > Golang > JSON データを Go マップに部分的にアンマーシャリングする方法は?

JSON データを Go マップに部分的にアンマーシャリングする方法は?

Mary-Kate Olsen
リリース: 2024-12-22 15:51:11
オリジナル
466 人が閲覧しました

How to Partially Unmarshal JSON Data into a Go Map?

Go で JSON をマップに部分的にアンマーシャリングする方法

Go で JSON データをアンマーシャリングするのは簡単ですが、ネストされたデータを処理するときに課題が発生しますキーがデータのタイプを示すオブジェクト。これに対処するには、「encoding/json」パッケージを利用できます。

提供されたコードでは、JSON データを map[string][]byte にマップし、効果的にキーに変換しようとしています。 -value 文字列と生の JSON のペア。ただし、json.MapObject 関数が存在しないため、この解決策は実行できません。

代わりに、map[string]json.RawMessage を利用して目的を達成できます。 RawMessage は、解析されていない JSON を保持する不透明なタイプです。このアプローチを使用して、以下のコードは、提供された JSON データを objmap 変数にアンマーシャリングします。

var objmap map[string]json.RawMessage
err := json.Unmarshal(data, &objmap)
ログイン後にコピー

これで、objmap 内の個々のキーと値のペアにアクセスして、JSON データをさらに解析できるようになります。たとえば、「sendMsg」値を解析するには:

var s sendMsg
err = json.Unmarshal(objmap["sendMsg"], &s)
ログイン後にコピー

同様に、「say」値を文字列として解析できます:

var str string
err = json.Unmarshal(objmap["say"], &str)
ログイン後にコピー

注: 適切なアンマーシャリングを有効にするために、sendMsg 構造体内の変数を忘れずにエクスポートしてください。例:

type sendMsg struct {
    User string
    Msg  string
}
ログイン後にコピー

https://play.golang.org/p/OrIjvqIsi4-.

で実際の例を見つけることができます。

以上がJSON データを Go マップに部分的にアンマーシャリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート