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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-26 04:28:09329ブラウズ

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

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