Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menukar data JSON kepada struktur dalam Golang?

Bagaimana untuk menukar data JSON kepada struktur dalam Golang?

王林
王林asal
2024-06-05 20:47:00686semak imbas

Dalam Golang, data JSON boleh ditukar kepada struktur melalui langkah berikut: tentukan struktur dengan nama medan yang sepadan dengan nama atribut JSON dan gunakan teg json untuk menentukan nama medan JSON. Gunakan fungsi json.Unmarshal daripada pakej pengekodan/json untuk menghuraikan rentetan JSON dan menukarnya menjadi penunjuk kepada struktur. Semak ralat penghuraian. Akses medan struktur untuk mengekstrak data.

如何在 Golang 中将 JSON 数据转换为结构体?

Cara menukar data JSON kepada struktur dalam Golang

Pengenalan

Golang menyediakan pakej pengekodan/json untuk memproses data JSON dengan mudah. Ia membolehkan anda menukar data JSON kepada struktur, menjadikannya mudah untuk mengakses dan memanipulasi data JSON. encoding/json 包来方便地处理 JSON 数据。它允许您将 JSON 数据转换为结构体,从而可以轻松地访问和操作 JSON 数据。

实战案例

假设您有一个 JSON 字符串:

{
  "name": "John Doe",
  "age": 30,
  "occupation": "Software Engineer"
}

并希望将其转换为一个结构体。以下是步骤:

  1. 定义结构体:
type Person struct {
  Name       string `json:"name"`
  Age        int    `json:"age"`
  Occupation string `json:"occupation"`
}
  • struct 关键字创建了一个新的结构体类型。
  • 字段名称与 JSON 属性名称匹配。
  • json 标签指定了 JSON 字段名称。
  1. 解析 JSON 数据:
import "encoding/json"

var jsonStr = `{
  "name": "John Doe",
  "age": 30,
  "occupation": "Software Engineer"
}`

var person Person

err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
  // 处理错误
}
  • json.Unmarshal 函数解析 JSON 字符串并将其转换为指向结构体的指针。
  • jsonStr 是 JSON 字符串。
  • person 是目标结构体。
  • 如果有错误,Unmarshal 将返回该错误。
  1. 访问结构体字段:
fmt.Println(person.Name)  // "John Doe"
fmt.Println(person.Age)   // 30
fmt.Println(person.Occupation)  // "Software Engineer"
  • 一旦 JSON 数据被正确解析,您就可以像访问任何其他结构体成员一样访问结构体字段。

注意

  • 确保结构体字段的类型与 JSON 属性中的值类型兼容。
  • JSON 属性名称必须与结构体字段名称相匹配,除非您使用 json 标签。
  • 如果 JSON 数据无法解析,请在 Unmarshal
Kes praktikal🎜🎜🎜Andaikan anda mempunyai rentetan JSON: 🎜rrreee🎜 dan ingin menukarnya menjadi struktur. Berikut ialah langkah-langkahnya: 🎜
  1. 🎜Tentukan struktur: 🎜🎜
rrreee
  • Kata kunci struct mencipta jenis struktur baharu. 🎜
  • Nama medan sepadan dengan nama sifat JSON. 🎜
  • Teg json menentukan nama medan JSON. 🎜🎜
    1. 🎜Menghuraikan data JSON: 🎜🎜
    rrreee
    • fungsi json.Unmarshal menghuraikan rentetan JSON dan menukarnya Adalah penunjuk kepada struktur. 🎜
    • jsonStr ialah rentetan JSON. 🎜
    • orang ialah struktur sasaran. 🎜
    • Jika terdapat ralat, Unmarshal akan mengembalikan ralat tersebut. 🎜🎜
      1. 🎜Mengakses medan struct: 🎜🎜
      rrreee
      • Setelah data JSON dihuraikan dengan betul, anda boleh mengaksesnya sama seperti Access ahli struct yang lain bidang struktur. 🎜🎜🎜🎜Nota🎜🎜
        • Pastikan jenis medan struktur serasi dengan jenis nilai dalam atribut JSON. 🎜
        • Nama sifat JSON mesti sepadan dengan nama medan struct, melainkan anda menggunakan teg json. 🎜
        • Jika data JSON tidak boleh dihuraikan, semak ralat dalam Unmarshal. 🎜🎜

Atas ialah kandungan terperinci Bagaimana untuk menukar data JSON kepada struktur dalam Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn