GoLang 中的 JSON 基础知识

jsongo programmingprogramming更新于 2025/10/22 3:13:00

近年来,JSON 作为一种跨应用程序传输数据的数据格式越来越受欢迎。JSON(JavaScript 对象表示法)是一种紧凑且易于理解的数据交换标准。它广泛用于服务器到服务器通信、移动应用程序和 Web 应用程序。

它的简单性、并发性和可扩展性使 GoLang 成为一种强大的编程语言。本文将介绍 GoLang 中的 JSON 基础知识。

什么是 JSON?

JSON 是一种简单、轻量级的数据交换格式,无论是人类还是机器人都可以轻松理解和生成。它是一种完全独立于语言的文本格式,遵循 C 语言系列程序员所熟知的原则。

对象和数组是 JSON 中的两种主要结构类型。对象是无序的键值对集合,以字符串为键,以任何 JSON 数据类型为值。数组是有序的值集合,可以包含任何可接受的 JSON 数据类型。

使用 GoLang 编码 JSON

我们可以使用 GoLang 提供的内置"encoding/json"包对 JSON 数据进行编码和解码。我们必须构建一个映射到 JSON 对象的结构,以便将 GoLang 数据编码为 JSON 格式。

以一个名为"Person"的结构为例。它有两个字段:"Name"和"Age"。

type Person struct {
    Name string `json:"name"`
    Age int `json:"age"`
}

要将此结构编码为 JSON 格式,我们可以使用"json.Marshal"函数。

示例

package main

import (
   "encoding/json"
   "fmt"
)

type Person struct {
   Name string `json:"name"`
   Age  int    `json:"age"`
} 

func main() {
   p := Person{Name: "Asmitha", Age: 25}
   b, err := json.Marshal(p)
   if err != nil {
      fmt.Println("error:", err)
   }
   fmt.Println(string(b))
}

输出

{"name":"Asmitha","age":25}

使用 GoLang 解码 JSON

使用"json.Unmarshal"函数,我们可以将 JSON 数据转换为 GoLang 格式。此函数需要一个指向我们要将 JSON 对象映射到的结构的指针和一个保存 JSON 数据的字节切片。

例如,考虑一个表示名为"Person"的实体的 JSON 字符串。

jsonStr := `{"name":"Asmitha","age":25}`

要将此 JSON 字符串解码为"Person"结构,我们可以使用以下代码 -

示例

package main

import (
   "encoding/json"
   "fmt"
)

type Person struct {
   Name string `json:"name"`
   Age  int    `json:"age"`
}

func main() {
   var p Person
   jsonStr := `{"name":"Asmitha", "age":25}`
   err := json.Unmarshal([]byte(jsonStr), &p)
   if err != nil {
      fmt.Println("error:", err)
   }
   fmt.Println(p.Name, p.Age)
}

输出

Asmitha 25

使用 JSON 数组

JSON 中的数组是一组有组织的值。在 GoLang 中可以使用切片来表示 JSON 数组。

让我们使用 JSON 数字数组作为说明。

jsonStr := `[1, 2, 3, 4, 5]`

要将此 JSON 数组解码为整数切片,我们可以使用以下代码 -

示例

package main

import (
   "encoding/json"
   "fmt"
)

func main() {
   jsonStr := "[1, 2, 3, 4, 5]"
   var numbers []int
   err := json.Unmarshal([]byte(jsonStr), &numbers)
   if err != nil {
      fmt.Println("error:", err)
   }
   fmt.Println(numbers)
}

输出

[1 2 3 4 5]

结论

JSON 是一种流行的数据交换格式,而 GoLang 提供了一种直接有效的方法来处理 JSON 数据。在本文中,我们介绍了使用 GoLang 编码和解码 JSON 数据的基础知识以及如何使用 JSON 数组。了解这些信息将使您能够轻松地将 JSON 传达给您的 GoLang 应用程序并将其集成到其中。