encoding/json パッケージで提供される関数を使用して、JSON 文字列をエンコードおよびデコードします
JSON (JavaScript Object Notation) は一般的に使用されるデータ交換形式であり、フロントエンドとバックエンドで広く使用されていますデータの送信と保存。 Go 言語の標準ライブラリのencoding/json パッケージは、JSON 文字列を簡単にエンコードおよびデコードできる一連の関数を提供します。
Go 言語では、構造体を使用して JSON オブジェクトを表現し、エンコーディング/json パッケージで提供される Marshal 関数と Unmarshal 関数を使用してエンコードおよびデコードできます。
まず、JSON 文字列のエンコードを見てみましょう。エンコードとはGo言語の構造体オブジェクトをJSON文字列に変換することです。
コード例:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int Gender string } func main() { p := Person{ Name: "Alice", Age: 25, Gender: "Female", } // 使用json.Marshal函数对Person对象进行编码,返回一个字节数组 jsonBytes, err := json.Marshal(p) if err != nil { fmt.Println("JSON编码失败:", err) return } // 将字节数组转换为字符串 jsonString := string(jsonBytes) fmt.Println(jsonString) }
上記のコードを実行すると、出力結果は次のようになります:
{"Name":"Alice","Age":25,"Gender":"Female"}
エンコードされた JSON 文字列が元の person オブジェクトに 1 対で対応していることがわかります。 -one. 各オブジェクトのフィールドは、JSON 文字列のキーと値のペアに対応します。エンコードされた JSON 文字列は元の順序を保持します。
次に、JSON 文字列のデコードを見てみましょう。デコードとは、JSON文字列をGo言語の構造体オブジェクトに変換することです。
コード例:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int Gender string } func main() { jsonString := `{"Name":"Alice","Age":25,"Gender":"Female"}` // 将JSON字符串转换为字节数组 jsonBytes := []byte(jsonString) // 使用json.Unmarshal函数对JSON字符串进行解码 var p Person err := json.Unmarshal(jsonBytes, &p) if err != nil { fmt.Println("JSON解码失败:", err) return } fmt.Println(p) }
上記のコードを実行すると、出力結果は次のようになります:
{Alice 25 Female}
デコードされた Person オブジェクトが元の JSON 文字列に 1 対 1 で対応していることがわかります。 -one、各キーと値のペアはオブジェクトのフィールドに対応します。デコードされたフィールドは、元のデータ型を保持します。
エンコードとデコードにencoding/jsonパッケージを使用する場合、Go言語の構造体オブジェクトのフィールド名がJSON文字列のキー名と順番に一致していることを確認する必要があることに注意してください。変換を正しく実行するために。
上記は、encoding/json パッケージを使用して JSON 文字列をエンコードおよびデコードするサンプル コードです。これらの関数を利用することで、JSONデータをGo言語で簡単に処理することができます。
以上がEncoding/json パッケージで提供される関数を使用して、JSON 文字列をエンコードおよびデコードします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。