【Go语言中级开发】结构到 JSON 的 Golang 数组
下面的代码是将结构数组转换为 JSON 的示例。
package main import ( "log" "encoding/json" ) type Fruit struct { Name string `json:"name"` Quantity int `json:"quantity"` } func main() { a := Fruit{Name:"Apple",Quantity:1} o := Fruit{Name:"Orange",Quantity:2} var fs []Fruit fs = append(fs, a) fs = append(fs, o) log.Println(fs) j, _ := json.Marshal(fs) log.Println(string(j)) j, _ = json.MarshalIndent(fs, "", " ") log.Println(string(j)) }
运行它将产生如下输出。
【Go语言中级开发】Golang 中 JSON 的完整指南(附示例)
在这篇文章中,我们将学习如何以最简单的方式在 Go 中使用 JSON。
我们将学习如何将 JSON 原始数据(字符串或字节)转换为 Go 类型,如结构、数组和切片,以及非结构化数据,如映射和空接口。
JSON 被用作数据序列化的事实标准,在本文结束时,您将熟悉如何在 Go Unmarshaling Raw JSON Data 中对 JSON 进行编组(编码)和解组(解码)
Unmarshaling Raw JSON Data
Go 的 JSON 标准库提供的 Unmarshal 函数可以让我们以 []byte 变量的形式解析原始 JSON 数据。
我们可以将 JSON 字符串转换为字节,并将数据解组为变量地址:
【Go语言中级开发】在 Go 中编写 JSON REST API 的技巧
本文提供了有关使用普通 Go HTTP 处理程序编写 JSON REST API 的随机提示。
- 使用匿名类型解析 JSON
- 使用 http.MaxBytesReader 限制请求长度
- 使用 map[string]interface{} 生成 JSON
- 使用 MarshalJSON 自定义 JSON 输出
- 使用中间件处理错误
- 使用结构对处理程序进行分组
- 使用分段/编码
使用匿名类型解析 JSON
而不是声明全局类型:
【Go语言基础】如何在Golang中使用JSON
介绍
在现代程序中,一个程序和另一个程序之间的通信很重要。无论是检查用户是否可以访问另一个程序的 Go 程序、获取显示在网站上的过去订单列表的 JavaScript 程序,还是从文件中读取测试结果的 Rust 程序,程序都需要一种方法来为其他程序提供数据。然而,许多编程语言都有自己的内部存储数据的方式,这是其他语言无法理解的。为了允许这些语言进行交互,需要将数据转换为他们都能理解的通用格式。其中一种格式 JSON 是一种通过 Internet 以及在同一系统中的程序之间传输数据的流行方式。
许多现代编程语言在其标准库中包含一种将数据与 JSON 相互转换的方法,Go 也是如此。通过使用 Go 提供的 encoding/json 包,您的 Go 程序还可以与任何其他可以使用 JSON 进行通信的系统进行交互。
在本教程中,您将首先创建一个程序,该程序使用 encoding/json 包将地图中的数据编码为 JSON 数据,然后更新您的程序以使用结构类型对数据进行编码。之后,您将更新您的程序以将 JSON 数据解码为映射,然后最终将 JSON 数据解码为结构类型。
先决条件
要遵循本教程,您将需要: