Go语言---Json

JSON (JavaScript Object Notation)是一种比XML 更轻量级的数据交换格式,在易于人们阅读和编写的同时,也易于程序解析和生成。尽管JSON是 JavaScript的一个子集,但 JSON采用完全独立于编程语言的文本格式,且表现为键/值对集合的文本描述形式(类似一些编程语言中的字典结构),这使它成为较为理想的、跨平台、跨语言的数据交换语言。
开发者可以用 JSON 传输简单的字符串、数字、布尔值,也可以传输一个数组,或者一个更复杂的复合结构。在 Web 开发领域中,JSON 被广泛应用于 Web 服务端程序和客户端之间的数据通信。
Go 语言内建对 JSON 的支持。使用 Go 语言内置的 encoding/json 标准库,开发者可以轻松使用 Go程序生成和解析 JSON 格式的数据。

JSON在线解析及格式化验证

编码JSON

通过结构体生成JSON

使用 json.Marshal()所数可以对一组数据进行 JSON 格式的编码。json.Marshal()函数的声明如下:

fune Marshal(v interface{})([]byte,error)
  • 注意:成员的首字母必须大写
    在这里插入图片描述
    在这里插入图片描述
  • 也可以采用格式化编码
    在这里插入图片描述

JSON二次编码

  • 可以使用小写,但是后面需要加json:"company"的标识,相当于二次编码
    在这里插入图片描述
  • 控制字段是否输入到屏幕json:"-"
    在这里插入图片描述
  • 控制bool以字符串的类型进行输出json:",string"
    在这里插入图片描述

通过map生成JSON

在这里插入图片描述

解码JSON

解码到结构体

在这里插入图片描述

  • 需要先定义一个结构体变量,第二个参数使用这个结构体变量的地址。
  • 可以通过fmt.Printf("tmp=%+v\n", tmp)使打印字段更加清晰。
  • 如果只需要其中一部分,可以在定义一个结构体,使用新的结构体进行解码。
    在这里插入图片描述

解码到map

在这里插入图片描述

通过类型断言反推类型

  • 解析为map类型是无法通过m[“company”]进行转化的,要想把数据拆分出来,就要使用类型断言。
    在这里插入图片描述
  • 切片类型要使用[]interface{}
    在这里插入图片描述

从转化上来说,转化为map是最简单的,但是要从map里面知道每一个字段的类型,是需要一步一步的类型断言才能知道,很不方便,而使用结构体就可以方便的知道每一个类型。

相关推荐

  1. go语言请求http接口示例 并解析json

    2024-07-12 17:18:04       42 阅读
  2. GO: json 处理

    2024-07-12 17:18:04       33 阅读
  3. GO语言用http包发送带json文本body的GET请求

    2024-07-12 17:18:04       21 阅读
  4. Go语言GC

    2024-07-12 17:18:04       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 17:18:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 17:18:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 17:18:04       62 阅读
  4. Python语言-面向对象

    2024-07-12 17:18:04       72 阅读

热门阅读

  1. 软设之享元模式

    2024-07-12 17:18:04       22 阅读
  2. 3179. K 秒后第 N 个元素的值

    2024-07-12 17:18:04       22 阅读
  3. mysql中的二进制数据类型

    2024-07-12 17:18:04       20 阅读
  4. mysql8遇到的报错Public Key Retrieval is not allowed

    2024-07-12 17:18:04       23 阅读
  5. MySQL事务

    2024-07-12 17:18:04       21 阅读
  6. C语言阶乘(只用逻辑运算中的短路效应判断)

    2024-07-12 17:18:04       23 阅读
  7. numpy 解释函数nanmax

    2024-07-12 17:18:04       25 阅读
  8. AIGC:AI创作短片-流程以及工具介绍(学习笔记)

    2024-07-12 17:18:04       24 阅读
  9. NLP简介

    NLP简介

    2024-07-12 17:18:04      23 阅读
  10. Linux 内核中的 Makefile 和 Kconfig:深入理解与实践

    2024-07-12 17:18:04       21 阅读