Golang では、JSON オブジェクトを使用するときに、複数の JSON オブジェクトをネストする必要がある場合があります。この記事では、Golang で JSON オブジェクトのネストを実装する方法を簡単に紹介します。
JSON (JavaScript Object Notation) は、フロントエンドとバックエンドのデータ送信に一般的に使用される軽量のデータ交換形式です。 Golang では、標準ライブラリに組み込まれている「encoding/json」パッケージを使用して JSON をエンコードおよびデコードできます。
以下は、書籍情報を表す簡単な JSON データの例です。
{ "title": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "price": 5.99, "publisher": { "name": "Pan Books", "address": "London" } }
上の例では、「publisher」オブジェクトが「book」オブジェクト内にネストされています。 Golang で JSON オブジェクトのネストを実装するには、構造を定義し、標準ライブラリで提供されるメソッドを使用して JSON データをエンコードまたはデコードする必要があります。
たとえば、書籍情報を表すために「Book」という名前の構造を定義できます。
type Book struct { Title string `json:"title"` Author string `json:"author"` Price float64 `json:"price"` Publisher struct { Name string `json:"name"` Address string `json:"address"` } `json:"publisher"` }
上記のコードでは、ネストされた構造「Publisher」を使用して書籍の出版物を表しています。情報。 JSON データをエンコードおよびデコードするときにフィールド名が JSON キー名と正しく一致できるように、構造内の各フィールドに「json」タグを追加する必要があります。
「encoding/json」パッケージによって提供される Marshal メソッドと Unmarshal メソッドを使用して、Golang 構造を JSON データに、JSON データを Golang 構造にそれぞれ変換します。たとえば、次のコードを使用して、「Book」構造を JSON データに変換できます。
book := Book{ Title: "The Hitchhiker's Guide to the Galaxy", Author: "Douglas Adams", Price: 5.99, Publisher: struct { Name string `json:"name"` Address string `json:"address"` }{ Name: "Pan Books", Address: "London", }, } jsonBytes, err := json.Marshal(book) if err != nil { fmt.Println(err) } fmt.Println(string(jsonBytes))
上記のコードの出力結果は次のとおりです。
{ "title":"The Hitchhiker's Guide to the Galaxy", "author":"Douglas Adams", "price":5.99, "publisher":{ "name":"Pan Books", "address":"London" } }
次に、 JSON データを構造体「Book」に変換する次のコード:
jsonStr := `{ "title": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "price": 5.99, "publisher": { "name": "Pan Books", "address": "London" } }` var book Book if err := json.Unmarshal([]byte(jsonStr), &book); err != nil { fmt.Println(err) } fmt.Printf("%+v ", book)
上記のコードの出力結果は次のとおりです:
{Title:The Hitchhiker's Guide to the Galaxy Author:Douglas Adams Price:5.99 Publisher:{Name:Pan Books Address:London}}
要約:
Golang では、次のように使用できます。 JSON オブジェクトのネストを実装する構造体が処理されます。構造内で「json」タグを使用して、フィールド名とJSONキー名の対応を指定する必要があります。標準ライブラリで提供されている Marshal メソッドと Unmarshal メソッドを使用して、Golang 構造を JSON データに、JSON データを Golang 構造にそれぞれ変換します。
以上がgolang jsonをネストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。