Go 言語では、encoding/json パッケージは、JSON (JavaScript Object Notation) 形式でデータを処理するための標準ライブラリです。このライブラリでは、Go 言語の構造体やその他のデータ型を JSON 形式に準拠したバイナリ データにエンコードできる Encoder 型が提供されています。この記事では、このタイプについて詳しく説明し、具体的なコード例を示します。
まずエンコーダ型の定義を見てみましょう:
type Encoder struct { w io.Writer err error h *encodeState generic bool }
定義からわかるように、エンコーダ型は構造体型です。には、次の 4 つのフィールドが含まれます:
エンコーダ タイプ 以下
NewEncoder メソッドは、Encoder 型のインスタンスを作成するために使用され、io.Writer インターフェイス オブジェクトを として渡す必要があります。パラメータ 。以下は、Encoder インスタンスを作成するサンプル コードです。
package main import ( "encoding/json" "os" ) func main() { type Movie struct { Title string Year int Actors []string } movie := Movie{ Title: "Inception", Year: 2010, Actors: []string{"Leonardo DiCaprio", "Ellen Page", "Tom Hardy"}, } encoder := json.NewEncoder(os.Stdout) encoder.Encode(movie) }
上記のサンプル コードでは、Movie タイプの構造体インスタンスを作成し、エンコードして標準出力に出力します。
Encode メソッドは、受信データ型 (v) を JSON エンコードし、エンコード結果を io に書き込むために使用されます。 Encoder インスタンス オブジェクトの .Writer。エンコード中にエラーが発生した場合は、対応するエラー メッセージが返されます。以下は、Encode メソッドのサンプル コードです。
package main import ( "encoding/json" "os" ) func main() { type Movie struct { Title string Year int Actors []string } movie := Movie{ Title: "Inception", Year: 2010, Actors: []string{"Leonardo DiCaprio", "Ellen Page", "Tom Hardy"}, } file, _ := os.Create("movie.json") encoder := json.NewEncoder(file) encoder.Encode(movie) file.Close() }
上記のサンプル コードでは、Movie タイプの構造体インスタンスを作成し、エンコードして、movie.json ファイルに書き込みます。
SetIndent メソッドは、JSON エンコードされた出力のインデント形式を設定するために使用されます。このメソッドは、「プレフィックス」を表す 2 つの文字列パラメータを受け取ります」と「インデント」。以下は SetIndent メソッドのサンプル コードです。
package main import ( "encoding/json" "os" ) func main() { type Movie struct { Title string Year int Actors []string } movie := Movie{ Title: "Inception", Year: 2010, Actors: []string{"Leonardo DiCaprio", "Ellen Page", "Tom Hardy"}, } file, _ := os.Create("movie.json") encoder := json.NewEncoder(file) encoder.SetIndent("", " ") encoder.Encode(movie) file.Close() }
上記のサンプル コードでは、SetIndent メソッドを使用してインデント プレフィックスを空に設定し、文字列を 4 つのスペースでインデントし、エンコードされた JSON をフォーマットします。データは movie.json ファイルに書き込まれます。
SetEscapeHTML メソッドは、Encoder インスタンス オブジェクトが HTML タグをエスケープする必要があるかどうかを設定するために使用されます。デフォルト値は true です。 on パラメータが true の場合、HTML タグはエスケープされ、on パラメータが false の場合、出力は元の文字列形式になります。以下は SetEscapeHTML メソッドのサンプル コードです。
package main import ( "encoding/json" "os" ) func main() { type Example struct { Name string HTMLBody string `json:"body"` } example := Example{ Name: "example", HTMLBody: "<h1>This is a heading</h1> <p>This is a paragraph.</p>", } file, _ := os.Create("example.json") encoder := json.NewEncoder(file) encoder.SetEscapeHTML(false) encoder.Encode(example) file.Close() }
上記のサンプル コードでは、SetEscapeHTML メソッドを使用して HTML タグを元の文字列形式に出力します。
Encoder型はGo言語のencoding/jsonパッケージにおけるJSONエンコードに使用されるコア型であり、JSON形式のデータのエンコード処理を提供します。 Go 言語の構造体やその他のデータ型を JSON 形式のバイナリ データに変換し、指定された io.Writer に出力します。 Encoder タイプを使用する場合、そのパブリック メソッドを呼び出すことで、エンコード パラメーターを設定し、JSON エンコードやその他の操作を実行できます。
以上がGo言語ドキュメント解釈:エンコーディング/json.Encoder型の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。