Go语言基础:JSON


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

GoLang 是一种功能强大的编程语言,其简洁性、并发性和可扩展性使其脱颖而出。本文将介绍 GoLang 中 JSON 的基础知识。

什么是 JSON?

JSON 是一种简单、轻量级的数据交换格式,易于人类和机器阅读和生成。它是一种完全与语言无关的文本格式,遵循 C 系列语言程序员熟悉的原则。

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

使用 GoLang 编码 JSON

我们可以使用 GoLang 提供的内置“encoding/json”包来编码和解码 JSON 数据。为了将 GoLang 数据编码成 JSON 格式,我们需要创建一个与 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 应用程序中并进行通信。

更新于: 2023年4月6日

358 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告