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