json.Unmarshal 関数を使用して、JSON 文字列を構造体に解析します。
json.Unmarshal 関数を使用して JSON 文字列を構造体に解析する
Go 言語では、json.Unmarshal 関数を使用して JSON 文字列を構造体に解析できます。これは、特に API 応答を処理する場合や設定ファイルを読み取る場合に非常に便利な機能です。
まず、解析する JSON オブジェクトの構造を表す構造タイプを定義する必要があります。次の JSON 文字列があるとします。
{ "name": "Alice", "age": 25, "email": "alice@example.com" }
この JSON オブジェクトを表す構造タイプを次のように定義できます。
type Person struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` }
この構造タイプには、JSON オブジェクトに対応する 3 つのフィールドがあります。名前、年齢、電子メールのフィールド。構造体フィールドのタグでは、json:"フィールド名"
の形式を使用して、JSON オブジェクト内のフィールド名を指定します。
次に、json.Unmarshal 関数を使用して、JSON 文字列をこの構造タイプのオブジェクトに解析します。使用例は次のとおりです。
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` } func main() { jsonString := ` { "name": "Alice", "age": 25, "email": "alice@example.com" } ` var person Person err := json.Unmarshal([]byte(jsonString), &person) if err != nil { fmt.Println("解析JSON失败:", err) return } fmt.Println("姓名:", person.Name) fmt.Println("年龄:", person.Age) fmt.Println("邮箱:", person.Email) }
上の例では、最初に JSON 文字列を定義します。次に、解析された結果を受け取るために、タイプ Person の変数 person を宣言しました。次に、&person を使用して person 変数へのポインターを渡し、 json.Unmarshal 関数を呼び出します。解析が成功すると、person 変数には JSON 文字列のデータが含まれます。
最後に、person 構造変数のフィールドにアクセスして、解析結果を出力します。出力は次のようになります:
姓名: Alice 年龄: 25 邮箱: alice@example.com
JSON 文字列と構造タイプが一致しない場合、または JSON 文字列形式が正しくない場合、解析プロセスが失敗する可能性があることに注意してください。上記の例では、err 変数を使用して、解析結果にエラーがないかどうかを確認します。
要約すると、json.Unmarshal 関数を使用して JSON 文字列を構造に解析するのは非常に簡単で便利です。対応する構造型を定義し、この型の変数へのポインターを json.Unmarshal 関数に渡して解析を行うだけです。これにより、JSON データを処理する際に非常に便利になります。
以上がjson.Unmarshal 関数を使用して、JSON 文字列を構造体に解析します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JSON (JavaScriptObjectNotation) は、Web アプリケーション間のデータ交換の一般的な形式となっている軽量のデータ交換形式です。 PHP の json_encode() 関数は、配列またはオブジェクトを JSON 文字列に変換できます。この記事では、PHPのjson_encode()関数の構文、パラメータ、戻り値、具体的な例などの使い方を紹介します。構文 json_encode() 関数の構文は次のとおりです。

C では、構造体と配列の両方がデータ型のコンテナとして使用されます。つまり、構造体と配列の両方でデータを保存し、それらに対してさまざまな操作を実行できます。内部実装に基づいて、この 2 つの基本的な違いをいくつか示します。 Sr. Number Key 構造体 配列 1 定義 構造体は、コンテナとして使用され、さまざまなタイプの変数を保持できるデータ構造として定義できます。一方、配列は、同じ型の変数を保持できるコンテナとして使用されるデータ構造ですが、複数のデータ型変数をサポートしません。 2 メモリ割り当て 入力データのメモリ割り当て構造は、連続したメモリ位置にある必要はありません。一方、配列の場合、入力データは連続したメモリ割り当てに格納されます。これは、配列が連続したメモリ ブロックを割り当てるメモリ モデルにデータを格納することを意味します。

PHP 言語が開発および成長し続けるにつれて、PHP における構造の適用および操作方法はますます完成してきています。一般的な変数と配列に加えて、PHP はより柔軟なデータ型、つまり構造体も提供します。構造体は、異なる型の複数のデータ メンバーで構成される複合データ型です。関連するデータを結合して、より完全で構造化されたデータを形成できます。 PHP では、クラスとオブジェクトを使用して構造の動作と機能をシミュレートできます。まず、その方法を見てみましょう

Golang における構造体の強制とは、ある構造体の型の値を別の型に変換することです。これは、アサーション フォース トランスファー、リフレクション フォース トランスファー、ポインター間接フォース トランスファーなどの手法を通じて実現できます。アサーション強制は型アサーションを使用し、リフレクション強制はリフレクション メカニズムを使用し、ポインタの間接強制は値のコピーを回避します。具体的な手順は次のとおりです: 1. アサーション強制転送: typeassertion 構文を使用します; 2. リフレクション強制転送: reflect.Type.AssignableTo 関数とreflect.Value.Convert 関数を使用します; 3. ポインタの間接強制転送: ポインタ逆参照を使用します。

json.Marshal 関数を使用して構造体を JSON 文字列に変換する Go 言語では、 json.Marshal 関数を使用して構造体を JSON 文字列に変換できます。構造体は複数のフィールドで構成されるデータ型であり、JSON は一般的に使用される軽量のデータ交換形式です。構造を JSON 文字列に変換すると、異なるシステム間でのデータ交換が簡単になります。サンプルコードは次のとおりです: packagemainimport(&q

ここでは、C言語の匿名共用体と構造体とは何かを見てみましょう。匿名の共用体と構造体は、名前のない共用体と構造体です。これらには名前がないため、その直接のオブジェクトを作成することはできません。入れ子構造またはユニオンとして使用します。これらは、匿名の共用体と構造体の例です。 struct{ datatypevariable; ...};union{ datatypevariable; ...};この例では、

Golangで構造体を返すにはどうすればよいですか?関数シグネチャで構造体のタイプを指定します (funcgetPersonal()Person{} など)。関数本体で return{} ステートメントを使用して、必須フィールドを含む構造体を返します。構造体フィールドには、基本型または他の構造を使用できます。

json.Unmarshal 関数を使用して JSON 文字列を構造体に解析します。Go 言語では、json.Unmarshal 関数を使用して JSON 文字列を構造体に解析できます。これは、特に API 応答を処理する場合や設定ファイルを読み取る場合に非常に便利な機能です。まず、解析する JSON オブジェクトの構造を表す構造タイプを定義する必要があります。次の JSON 文字列があるとします: {"name"
