1. ホーム
  2. json

[解決済み] ネストされたJSONオブジェクトのアンマーシャリング

2022-05-11 15:50:26

質問

があります。 a 少数 質問 についてです。 トピック が、どれも私のケースをカバーしていないようなので、新しいものを作成します。

以下のようなJSONがあります。

{"foo":{ "bar": "1", "baz": "2" }, "more": "text"}

ネストされたバー プロパティのマーシャルを解除し、ネストされた構造体を作成せずに構造体プロパティに直接代入する方法はありますか?

私が今採用している解決策は、以下の通りです。

type Foo struct {
    More String `json:"more"`
    Foo  struct {
        Bar string `json:"bar"`
        Baz string `json:"baz"`
    } `json:"foo"`
    //  FooBar  string `json:"foo.bar"`
}

これは簡略化したものです。冗長な部分は無視してください。見ての通り、パースして値を代入して

//  FooBar  string `json:"foo.bar"`

地図を使っている人も見かけますが、私の場合は違いますね。の中身は基本的に気にしません。 foo (これは大きなオブジェクトです)、いくつかの特定の要素を除いて。

この場合、どのような方法が正しいのでしょうか?変なハックは求めていませんので、この方法であれば問題ありません。

どのように解決するのですか?

<ブロッククオート

ネストされたbarプロパティのマーシャルを解除し、ネストされたstructを作成せずにstructプロパティに直接代入する方法はありますか?

いいえ、エンコーディング/json では、エンコーディング/xml のように ">some>deep>childnode" を使った芸当ができません。 ネストされた構造体を使用するのがよいでしょう。