Golang で JSON データを正しく解析するにはどうすればよいですか?

王林
リリース: 2024-06-03 20:06:00
オリジナル
697 人が閲覧しました

Golang での JSON データの解析は、次の手順で行うことができます: エンコーディング/json パッケージを使用します。 json.Marshal() を使用して、データ構造を JSON バイト スライスに変換します。 json.Unmarshal() を使用して JSON データを解析します。

如何正确解析 Golang 中的 JSON 数据?

Golang で JSON データを正しく解析する方法

Golang では、JSON データの解析は一般的なタスクです。 JSON データを正しく解析する手順は次のとおりです:

1. encoding/json パッケージを使用しますencoding/json

Golang 提供了 encoding/json 内置包来处理 JSON 数据。

2. Marshal JSON 数据

如果您有任意类型的数据结构,可以使用 json.Marshal() 函数将其转换为 JSON 字节切片:

import "encoding/json"

type Person struct {
    Name string
    Age  int
}

p := Person{"Alice", 25}

data, err := json.Marshal(p)
if err != nil {
    // 处理错误
}
ログイン後にコピー

3. Unmarshal JSON 数据

要解析 JSON 数据,可以使用 json.Unmarshal() 函数:

import "encoding/json"

type Person struct {
    Name string
    Age  int
}

var data []byte // JSON 字节切片

var p Person
err := json.Unmarshal(data, &p)
if err != nil {
    // 处理错误
}
ログイン後にコピー

实战案例

假设您有一个包含用户信息的 JSON 文件:

{
    "users": [
        {
            "name": "Alice",
            "age": 25
        },
        {
            "name": "Bob",
            "age": 30
        }
    ]
}
ログイン後にコピー

要解析此文件,您可以按照以下步骤进行:

  1. 读取文件内容:
import "io/ioutil"

data, err := ioutil.ReadFile("users.json")
if err != nil {
    // 处理错误
}
ログイン後にコピー
  1. Unmarshal JSON 数据:
import "encoding/json"

type User struct {
    Name string
    Age  int
}

var users []User
err := json.Unmarshal(data, &users)
if err != nil {
    // 处理错误
}
ログイン後にコピー
  1. 现在您就可以访问 users
Golang には encoding/json 組み込みパッケージが用意されています。 JSONデータを処理します。 🎜🎜🎜2. JSON データをマーシャルする🎜🎜🎜 任意のタイプのデータ構造がある場合は、json.Marshal() 関数を使用して JSON バイト スライスに変換できます: 🎜rrreee🎜🎜 3. JSON データのアンマーシャル🎜🎜🎜 JSON データを解析するには、json.Unmarshal() 関数を使用できます: 🎜rrreee🎜🎜実用的なケース🎜🎜🎜 ユーザー情報を含む JSON ファイルがあるとします。 🎜rrreee🎜 このファイルを解析するには、次の手順に従います: 🎜
  1. ファイルの内容を読み取る: 🎜🎜rrreee
    1. JSON データをアンマーシャルする: 🎜🎜rrreee
      1. users スライス内の個々のユーザー オブジェクトにアクセスできるようになりました。 🎜🎜

以上がGolang で JSON データを正しく解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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