golang jsonをオブジェクトに変換

WBOY
リリース: 2023-05-13 10:56:37
オリジナル
1179 人が閲覧しました

Golang プログラミング言語では、JSON は非常に一般的なデータ構造です。 Golang は、JSON エンコードおよびデコード操作を実行するための使いやすい API をいくつか提供します。この記事では、JSON を Golang オブジェクトに変換する方法を紹介します。これがどのように行われるかを具体的な例で説明します。

まず、Golang で encoding/json パッケージを使用する必要があります。このパッケージは、Golang オブジェクトと JSON の間で変換するメソッドを提供します。それらの中で最も重要なのは、マーシャル メソッドとアンマーシャル メソッドです。 Marshal は Golang オブジェクトを JSON 文字列にエンコードするために使用され、Unmarshal は JSON 文字列から Golang オブジェクトをデコードするために使用されます。

具体的な例を見てみましょう。 JSON に格納されたユーザー オブジェクトを表す次の JSON 文字列について考えてみましょう。

{
    "id": 123,
    "name": "John Doe",
    "email": "jdoe@example.com",
    "phone": "555-1234",
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "state": "CA",
        "zip": "12345"
    }
}
ログイン後にコピー

Golang を使用して、この JSON を読み取り、User オブジェクトに変換するコードを記述します。 User オブジェクトは次のように定義されています。

type User struct {
    ID      int
    Name    string
    Email   string
    Phone   string
    Address Address
}
ログイン後にコピー

Address もオブジェクト タイプであり、ユーザーの住居住所を表すために使用されます。

type Address struct {
    Street string
    City   string
    State  string
    Zip    string
}
ログイン後にコピー

上記の JSON を User に変換する方法を見てみましょう。物体。まず Unmarshal メソッドを使用して JSON 文字列を読み取り、それを Golang 構造に変換します。

func decodeUser(jsonStr string) (User, error) {
    var user User
    err := json.Unmarshal([]byte(jsonStr), &user)
    if err != nil {
        return User{}, err
    }
    return user, nil
}
ログイン後にコピー

次のメソッドを通じて JSON 文字列をパラメータとして decodeUser 関数に渡し、User オブジェクトを取得できます。 :

jsonStr := `{
    "id": 123,
    "name": "John Doe",
    "email": "jdoe@example.com",
    "phone": "555-1234",
    "address": {
        "street": "123 Main St",
        "city": "Anytown",
        "state": "CA",
        "zip": "12345"
    }
}`

user, err := decodeUser(jsonStr)
if err != nil {
    fmt.Println("Error decoding JSON: ", err.Error())
}
fmt.Printf("User: %+v", user)
ログイン後にコピー

上記のコードは次のように出力するはずです:

User: {ID:123 Name:John Doe Email:jdoe@example.com Phone:555-1234 Address:{Street:123 Main St City:Anytown State:CA Zip:12345}}
ログイン後にコピー

Golang では、JSON を使用するのが非常に便利で使いやすいです。 JSON エンコードとデコードを実装するには、json パッケージ内のいくつかの API を理解するだけで済みます。上記の紹介を通じて、読者は Golang がどのように JSON を処理するか、また JSON 文字列を Golang オブジェクトに変換する方法を理解できます。

以上がgolang jsonをオブジェクトに変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート