如何用Go语言实现结构体与JSON的交互?

2026-05-05 18:461阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计328个文字,预计阅读时间需要2分钟。

如何用Go语言实现结构体与JSON的交互?

“结构体与JSON教程:https://www.runoob.com/json/json-tutorial.

什么是JSON?JSON指的是JavaScript对象表示法(JavaScript Object Notation)。JSON是一种轻量级的数据交换格式,独立于语言。

结构体与JSON

如何用Go语言实现结构体与JSON的交互?

JSON 教程:www.runoob.com/json/json-tutorial.html

什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
  • JSON 具有自我描述性,更易理解

package main import ( "encoding/json" "fmt" ) // 结构体与json // 1. 序列化:把Go语言中的结构体变量 --> json格式的字符串 // 2. 反序列化:json格式的字符串 --> Go语言中能够识别的结构体变量 type person struct { Name string `json:"name" db:"name" ini:"name"` Age int `json:"age"` } func main() { p1 := person{ Name: "紫霞", Age: 12, } fmt.Println(p1) // 序列化 b, err := json.Marshal(p1) if err != nil { fmt.Printf("Marshal failed, err:%v\n", err) return } fmt.Printf("%#v\n", string(b)) // "{\"Name\":\"紫霞\",\"Age\":12}" 没有首字母大写 "{}" "{\"name\":\"紫霞\",\"age\":12}" // 反序列化 str := `{"name":"理想", "age":18}` var p2 person json.Unmarshal([]byte(str), &p2) // 传指针是为了能在json.Unmarshal内部修改p2的值 fmt.Printf("%#v\n", p2) // main.person{Name:"理想", Age:18} }

本文共计328个文字,预计阅读时间需要2分钟。

如何用Go语言实现结构体与JSON的交互?

“结构体与JSON教程:https://www.runoob.com/json/json-tutorial.

什么是JSON?JSON指的是JavaScript对象表示法(JavaScript Object Notation)。JSON是一种轻量级的数据交换格式,独立于语言。

结构体与JSON

如何用Go语言实现结构体与JSON的交互?

JSON 教程:www.runoob.com/json/json-tutorial.html

什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
  • JSON 具有自我描述性,更易理解

package main import ( "encoding/json" "fmt" ) // 结构体与json // 1. 序列化:把Go语言中的结构体变量 --> json格式的字符串 // 2. 反序列化:json格式的字符串 --> Go语言中能够识别的结构体变量 type person struct { Name string `json:"name" db:"name" ini:"name"` Age int `json:"age"` } func main() { p1 := person{ Name: "紫霞", Age: 12, } fmt.Println(p1) // 序列化 b, err := json.Marshal(p1) if err != nil { fmt.Printf("Marshal failed, err:%v\n", err) return } fmt.Printf("%#v\n", string(b)) // "{\"Name\":\"紫霞\",\"Age\":12}" 没有首字母大写 "{}" "{\"name\":\"紫霞\",\"age\":12}" // 反序列化 str := `{"name":"理想", "age":18}` var p2 person json.Unmarshal([]byte(str), &p2) // 传指针是为了能在json.Unmarshal内部修改p2的值 fmt.Printf("%#v\n", p2) // main.person{Name:"理想", Age:18} }