ホームページ >バックエンド開発 >Golang >golang jsonをネストする方法

golang jsonをネストする方法

WBOY
WBOYオリジナル
2023-05-10 10:34:081048ブラウズ

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

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