ホームページ > バックエンド開発 > Golang > JSON を Go マップに部分的にアンマーシャリングするにはどうすればよいですか?

JSON を Go マップに部分的にアンマーシャリングするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-26 04:28:09
オリジナル
293 人が閲覧しました

How Can I Partially Unmarshal JSON into a Go Map?

Go でマップに部分的に JSON アンマーシャルする

Go では、データが key- を持つオブジェクトでラップされている場合に、JSON データをマップに部分的にアンマーシャルすることができます。値のペア。これにより、各キーが保持する値のタイプを簡単に識別できます。

実装

これを実現するには、encoding/json パッケージを使用し、map[string]json.RawMessage にアンマーシャルします。 json.RawMessage タイプは、さらに解析する前に、基礎となる JSON データをキャプチャします。

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

さらなる解析

マップを取得したら、そのマップに従って各キーの値の解析に進むことができます。既知のタイプ。

たとえばJSON:

{
    "sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
    "say":"Hello"
}
ログイン後にコピー

sendMsg を解析して次のように言うことができます:

type sendMsg struct {
    User string
    Msg  string
}

var s sendMsg
err = json.Unmarshal(objmap["sendMsg"], &s)

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート