ホームページ バックエンド開発 Golang json.Unmarshal 関数を使用して、JSON 文字列を構造体に解析します。

json.Unmarshal 関数を使用して、JSON 文字列を構造体に解析します。

Jul 25, 2023 pm 10:49 PM
構造 json文字列 jsonunmarshal

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する Nov 03, 2023 pm 03:30 PM

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

C言語の構造体と配列の違いは何ですか? C言語の構造体と配列の違いは何ですか? Aug 30, 2023 pm 09:37 PM

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

PHPにおける構造体の応用と操作方法 PHPにおける構造体の応用と操作方法 Jul 16, 2023 pm 11:21 PM

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

Golang 構造の強力な転送: 実装原理とテクニックの詳細な説明 Golang 構造の強力な転送: 実装原理とテクニックの詳細な説明 Apr 03, 2024 pm 03:09 PM

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

json.Marshal関数を使用して構造体をJSON文字列に変換します json.Marshal関数を使用して構造体をJSON文字列に変換します Jul 24, 2023 pm 12:54 PM

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

C 言語での匿名共用体と構造体の適用 C 言語での匿名共用体と構造体の適用 Sep 16, 2023 pm 06:45 PM

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

golang はどのようにして構造体を返すのでしょうか? golang はどのようにして構造体を返すのでしょうか? Apr 23, 2024 pm 02:03 PM

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

json.Unmarshal 関数を使用して、JSON 文字列を構造体に解析します。 json.Unmarshal 関数を使用して、JSON 文字列を構造体に解析します。 Jul 25, 2023 pm 10:49 PM

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

See all articles