golangのjson.Marshal関数を使用して構造体をJSON文字列に変換する方法

PHPz
リリース: 2023-11-18 08:05:30
オリジナル
1350 人が閲覧しました

golangのjson.Marshal関数を使用して構造体をJSON文字列に変換する方法

golang で json.Marshal 関数を使用して構造を JSON 文字列に変換する方法

現代のソフトウェア開発では、データの送信と保存に JSON (JavaScript) がよく使用されます。オブジェクト表記) 形式。 Go 言語では、 json.Marshal 関数を使用して構造体を JSON 文字列に変換できます。

json.Marshal 関数は、encoding/json パッケージにあり、その関数シグネチャは次のとおりです:

func Marshal(v interface{}) ([]byte, error)
ログイン後にコピー

このうち、v は JSON 文字列に変換される構造体変数です。この関数はバイト スライスとエラーを返します。変換が成功すると、返されるバイト スライスは JSON 文字列の表現になりますが、変換が失敗すると、非 nil エラーが返されます。

以下では、具体的な例を使用して、 json.Marshal 関数を使用して構造体を JSON 文字列に変換する方法を示します。

package main

import (
    "encoding/json"
    "fmt"
)

type Student struct {
    Name  string
    Age   int
    Score float64
}

func main() {
    student := Student{
        Name:  "Alice",
        Age:   20,
        Score: 89.5,
    }

    // 将结构体转换为JSON字符串
    jsonStr, err := json.Marshal(student)
    if err != nil {
        fmt.Println("转换失败:", err)
        return
    }

    fmt.Println(string(jsonStr))
}
ログイン後にコピー

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

{"Name":"Alice","Age":20,"Score":89.5}
ログイン後にコピー

上記のコードでは、Student 構造体を定義し、Student 変数を作成して初期値を割り当てます。次に、json.Marshal 関数を呼び出して Student を JSON 文字列に変換し、jsonStr 変数を取得します。最後に、fmt.Println を使用して jsonStr を出力します。

json.Marshal 関数は、構造体のフィールド名を JSON 属性名に変換し、属性値を適切な JSON 型に変換することに注意してください。デフォルトでは、変換された JSON 文字列内の属性名はすべて小文字です。フィールド名の大文字と小文字を元のままにしたい場合は、構造体フィールドのタグで json ディレクティブを使用して設定できます。

例:

type Student struct {
    Name  string `json:"name"`
    Age   int    `json:"age"`
    Score float64 `json:"score"`
}
ログイン後にコピー

このようにして、変換された JSON 文字列内の属性名は、元の構造フィールドの名前と一致します。

要約すると、json.Marshal 関数を使用して構造を JSON 文字列に変換できます。この機能は複雑なデータ型の変換やフィールド名の対応付けを自動的に処理してくれる大変便利な機能です。この機能を利用すると、Go言語でのJSONデータの送信と保存を簡単に扱うことができます。

以上がgolangのjson.Marshal関数を使用して構造体をJSON文字列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!