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