Golang で JSON シリアル化と逆シリアル化を実装する方法

WBOY
リリース: 2024-01-28 08:44:17
オリジナル
589 人が閲覧しました

Golang で JSON シリアル化と逆シリアル化を実装する方法

Golang で JSON のシリアル化と逆シリアル化を実装する方法

JSON (JavaScript Object Notation) は、一般的に使用されるデータ交換形式であり、テキストの形式で構造化されたものを表しますデータ。 Golang では、組み込みのエンコーディング/json パッケージを使用して、JSON シリアル化および逆シリアル化操作を実装できます。

1. JSON シリアル化

JSON シリアル化とは、Go 言語のデータ型を JSON 形式に準拠した文字列に変換することを指します。 Golang では、Marshal 関数を通じて JSON シリアル化を実装できます。

次は簡単な例です:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    person := Person{
        Name: "小明",
        Age:  20,
    }

    jsonBytes, err := json.Marshal(person)
    if err != nil {
        fmt.Println("JSON序列化失败:", err)
        return
    }

    jsonString := string(jsonBytes)
    fmt.Println("JSON序列化结果:", jsonString)
}
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります:

JSON序列化结果: {"name":"小明","age":20}
ログイン後にコピー

上記の例では、Person 構造を定義し、次のように使用します。 Marshal 関数を使用して、パーソン構造インスタンス person を JSON 文字列にシリアル化します。構造体フィールドの json タグを設定することで、JSON でフィールド名を指定できます。

2. JSON 逆シリアル化

JSON 逆シリアル化とは、JSON 形式に準拠した文字列を Go 言語のデータ型に変換することを指します。 Golang では、Unmarshal 関数を通じて JSON 逆シリアル化を実装できます。

次は簡単な例です:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    jsonString := `{"name":"小明","age":20}`

    var person Person
    err := json.Unmarshal([]byte(jsonString), &person)
    if err != nil {
        fmt.Println("JSON反序列化失败:", err)
        return
    }

    fmt.Println("JSON反序列化结果:", person)
}
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります:

JSON反序列化结果: {小明 20}
ログイン後にコピー

上記の例では、最初に JSON 形式で文字を定義します。文字列jsonString。次に、Unmarshal 関数を使用して、jsonString を Person 構造体インスタンス person に逆シリアル化します。 Unmarshal 関数の最初のパラメータはバイト スライスであり、文字列をバイト スライスに変換する必要があることに注意してください。

概要:

encoding/json パッケージの Marshal 関数と Unmarshal 関数を使用すると、Golang で JSON シリアル化および逆シリアル化操作を実装できます。実際の開発では、JSON のシリアル化と逆シリアル化は、特にフロントエンドと対話する場合や外部 API データを処理する場合に非常に一般的な操作です。これらのスキルを習得すると、開発効率が大幅に向上します。

以上がGolang で JSON シリアル化と逆シリアル化を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート