一、json 简介

在介绍这部分之前先简要介绍一下Json语法

JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中
数据由逗号分隔
大括号保存对象
中括号保存数组

1.JSON名称/值对

"name" : "value"

2.JSON值
可以是:

数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null

3.JSON数据
JSON 数字可以是整型或者浮点型

{ "age":30 }

4.JSON对象
JSON 对象在大括号({})中书写:
对象可以包含多个名称/值对:

{"name": "runoob","alexa": 10000,"sites": {"site1": "www.runoob.com","site2": "m.runoob.com","site3": "c.runoob.com"}
}

5.JSON数组
JSON 数组在中括号中书写:
数组可包含多个对象:

{"sites": [{"name": "菜鸟教程","url": "www.runoob.com"},{"name": "google","url": "www.google.com"},{"name": "微博","url": "www.weibo.com"}]
}

6.JSON布尔值

{ "flag":true }

7.JSON null

{ "runoob":null }

二、json 解析到结构体

//JSON解析到结构体
package main
import ("encoding/json""fmt""os"
)
type Server struct {ServerName stringServerIP   string
}
type Serverslice struct {Servers []Server
}
func main() {var s Serverslicestr := `{"servers":[{"serverName":"Guangzhou_Base","serverIP":"127.0.0.1"},{"serverName":"Beijing_Base","serverIP":"127.0.0.2"}]}`err:=json.Unmarshal([]byte(str), &s)if err!=nil{fmt.Println(err)}fmt.Println(s)fmt.Println(s.Servers[0].ServerName)
}

三、json 转 map

package mainimport ("fmt""encoding/json"
)func main() {b := []byte(`{"IP": "127.0.0.1", "name": "SKY"}`)m := make(map[string]string)err := json.Unmarshal(b, &m)if err != nil {fmt.Println("Umarshal failed:", err)return}fmt.Println("m:", m)for k,v :=range m {fmt.Println(k, ":", v)}
}

输出结果:

m: map[IP:127.0.0.1 name:SKY]
name : SKY
IP : 127.0.0.1

四、生成json

package main
import ("encoding/json""fmt"
)
type Server struct {ServerName string `json:"serverName,string"`ServerIP   string `json:"serverIP,omitempty"`
}
type Serverslice struct {Servers []Server `json:"servers"`
}
func main() {var s Serverslices.Servers = append(s.Servers, Server{ServerName: "Guangzhou_Base", ServerIP: "127.0.0.1"})s.Servers = append(s.Servers, Server{ServerName: "Beijing_Base", ServerIP: "127.0.02"})b, err := json.Marshal(s)if err != nil {fmt.Println("JSON ERR:", err)}fmt.Println(string(b))
}

golang 生成 解析 json相关推荐

  1. golang xml和json的解析与生成

    golang中解析xml时我们通常会创建与之对应的结构体,一层层嵌套,完成复杂的xml解析. package main;import ("encoding/xml""fm ...

  2. go 发送http请求; Golang 解析JSON 篇

    https://www.runoob.com/go/go-fmt-sprintf.html go 发送http请求: package mainimport ("io/ioutil" ...

  3. gson生成jsonobject_GSON形式生成和解析json数据

    GSON 方式生成和解析 json 数据 客户端与服务器进行数据交互时, 常常需要将数据在服务器端将数据转化成字符串并在客户 端对 json 数据进行解析生成对象. 但是用 jsonObject 和 ...

  4. mysql 动态sql 解析json数据_在SQL 中生成JSON数据

    这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数 ...

  5. qt中生成含有中文的json文件和解析json文件

    提要 生成的json文件在程序加载解析时出现上述错误,究其原因是生成json文件过程中编码问题.qt编译器默认的编码格式为utf-8,而windows一般为gbk编码,所以就需要在生成本地json文件 ...

  6. JS中生成与解析JSON

    js中生成json对象 js中解析json字符串: 1.eval("..."): var a_id=eval('{"name":123}'); 如果eval中的 ...

  7. golang 递归方式解析json串

    golang 递归方式解析json串 package mainimport ("fmt""encoding/json" )func jsonArrayParse ...

  8. 18生成和解析JSON

    18生成和解析JSON 1.什么是JSON?JSON的作用?如何编写JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ...

  9. Unity编译器 《策划表编表工具》 Excel转Json自动生成解析c#代码

    Unity编译器 <策划表编表工具> Excel转Json自动生成解析c#代码 1.表格数据结构解释 2.Excel文件路径 3.C#代码与Json自动生成路径 点击下载依赖Dll程序集 ...

最新文章

  1. 使用Pygame制作微信打飞机游戏PC版
  2. Windows Azure Cloud Service (19) 动态指定WCF的发布地址
  3. WinCE5.0中应用程序如何直接写屏
  4. 根据XML配置规则导入Excel数据(⑥)ExcelAble 标记接口
  5. 音效摸鱼还不够爽?试试IDE里打几盘魂斗罗?
  6. .NET下日志系统的搭建——log4net+kafka+elk
  7. 胶囊网络(Capsule)实战——keras算法练习
  8. .NET环境下生成JSON的类库 - JSON.NET
  9. js闭包原理与例子[转]
  10. opesnstack四部曲(1)---keystone
  11. 计算机制图的简称市什么,计算机地的图制图复习题.doc
  12. navicat 与sqlserver2012连接报错无法连接到服务器
  13. 矩阵乘法求导计算公式推导
  14. jvm gc日志分析和工具
  15. 当生命科学遇上AI,会产生怎样1+1>2效果?
  16. APP上查个人信用报告靠谱吗?
  17. 一个实用分数类Fraction的Java实现
  18. 鸿蒙系统报名选择一个应用,申请鸿蒙系统有一个应用选择怎么选择呢
  19. 绕过Office文档的受保护视图
  20. cad调了比例因子没反应_CAD入门学习之如何修改比例因子

热门文章

  1. 实在不好意思,最近写个项目,一直没时间来灌水
  2. php获取post表单数据_PHP如何通过post方法来获取form表单中数据?(代码示例)
  3. NetDevOps — NAPALM
  4. 互联网协议 — TCP — 拥塞控制(网络质量保障)
  5. FD.io/VPP — VPP Agent — Telemetry Plugin
  6. C 语言编程 — 程序的装载与运行
  7. 互联网协议 — VRRP 虚拟路由器冗余协议
  8. SDN — 技术的发展
  9. LVS 四层 TCP/UDP 负载均衡器
  10. LEB(Leading edge blanking)是什么