[golang]标准库-json

简介: [golang]标准库-json

前言

json数据格式通常包含两个操作:序列化(把对象转换成JSON数据类型)和反序列化(把JSON数据类型转换成对象),二者操作互逆。

Go语言中相关标准库为encoding/json

示例代码

package main
import (
  "encoding/json"
  "fmt"
)
type JsonExample struct {
  Name   string   `json:"name,omitempty"` // 序列化后显示为name,若其值为空,则不显示该字段
  Age    int      `json:"age"`            // 序列化后显示为age
  School string   `json:"university"`     // 序列化后显示为university
  Class  []string `json:"class"`
}
// 对象序列化为json
func JsonMarshal() {
  var jex JsonExample = JsonExample{
    Name:   "Go",
    Age:    12,
    School: "TsingHua",
    Class:  []string{"YuWen", "ShuXue", "YingYu"},
  }
  by, _ := json.Marshal(jex)
  fmt.Println(string(by))
}
// json反序列化为对象
func JsonUnmarshal() {
  var v JsonExample
  by := []byte(`{"name": "python","age":18,"university": "ustc","class": ["WuLi","HuaXue","ShengWu"]}`)
  json.Unmarshal(by, &v)
  fmt.Printf("%+v\n", v)
}
func main() {
  JsonMarshal() // {"name":"Go","age":12,"university":"TsingHua","class":["YuWen","ShuXue","YingYu"]}
  fmt.Println("=============")
  JsonUnmarshal() // {Name:python Age:18 School:ustc Class:[WuLi HuaXue ShengWu]}
}

注意事项:

  • 如果知道反序列化之后的具体结构,那么应该先定义一个符合反序列之后的结构体。
  • 如果不知道反序列化之后的具体结构,那么应该使用interface来表示任意类型。
  • 结构体定义时的标签用于指定序列化之后的显示。

参考文档

相关文章
|
12天前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
5月前
|
JSON 数据处理 数据安全/隐私保护
Ktor库的高级用法:代理服务器与JSON处理
Ktor库的高级用法:代理服务器与JSON处理
|
2月前
|
JSON Go 数据格式
Golang语言结构体链式编程与JSON序列化
这篇文章是关于Go语言中结构体链式编程与JSON序列化的教程,详细介绍了JSON格式的基本概念、结构体的序列化与反序列化、结构体标签的使用以及如何实现链式编程。
34 4
|
2月前
|
Unix Go
Golang语言标准库time之日期和时间相关函数
这篇文章是关于Go语言日期和时间处理的文章,介绍了如何使用Go标准库中的time包来处理日期和时间。
42 3
|
3月前
|
JSON Go API
一文搞懂 Golang 高性能日志库 - Zap
一文搞懂 Golang 高性能日志库 - Zap
156 2
|
3月前
|
存储 JSON 测试技术
Python中最值得学习的第三方JSON库
Python中最值得学习的第三方JSON库
|
3月前
|
存储 JSON Go
一文搞懂 Golang 高性能日志库 Zerolog
一文搞懂 Golang 高性能日志库 Zerolog
234 0
|
5月前
|
存储 JSON JavaScript
Python教程:一文了解Python中的json库
JSON(JavaScript Object Notation)是一种轻量级数据交换格式,易于人类阅读和编写,也易于计算机解析和生成。在Python中,JSON通常用于数据交换和存储,因为它与Python的字典和列表类型相似。
573 2
|
5月前
|
JSON API 数据格式
如何用 Python 的 requests 库发送 JSON 数据的 POST 请求
使用 requests 库发送 JSON 数据的 POST 请求是一个非常简单且实用的操作。通过将目标 URL 和 JSON 数据传递给 requests.post 方法,你可以轻松发送请求并处理响应。本篇文章介绍了从安装 requests 库,到发送 JSON 数据的 POST 请求,再到处理响应的整个流程。希望这篇文章能帮助你更好地理解并应用这个强大的 HTTP 请求库。
|
4月前
|
JSON 安全 fastjson
FastJSON库:JSON处理效率与安全性评估
FastJSON库:JSON处理效率与安全性评估