golang 生成 解析 json
一、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相关推荐
- golang xml和json的解析与生成
golang中解析xml时我们通常会创建与之对应的结构体,一层层嵌套,完成复杂的xml解析. package main;import ("encoding/xml""fm ...
- go 发送http请求; Golang 解析JSON 篇
https://www.runoob.com/go/go-fmt-sprintf.html go 发送http请求: package mainimport ("io/ioutil" ...
- gson生成jsonobject_GSON形式生成和解析json数据
GSON 方式生成和解析 json 数据 客户端与服务器进行数据交互时, 常常需要将数据在服务器端将数据转化成字符串并在客户 端对 json 数据进行解析生成对象. 但是用 jsonObject 和 ...
- mysql 动态sql 解析json数据_在SQL 中生成JSON数据
这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数 ...
- qt中生成含有中文的json文件和解析json文件
提要 生成的json文件在程序加载解析时出现上述错误,究其原因是生成json文件过程中编码问题.qt编译器默认的编码格式为utf-8,而windows一般为gbk编码,所以就需要在生成本地json文件 ...
- JS中生成与解析JSON
js中生成json对象 js中解析json字符串: 1.eval("..."): var a_id=eval('{"name":123}'); 如果eval中的 ...
- golang 递归方式解析json串
golang 递归方式解析json串 package mainimport ("fmt""encoding/json" )func jsonArrayParse ...
- 18生成和解析JSON
18生成和解析JSON 1.什么是JSON?JSON的作用?如何编写JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ...
- Unity编译器 《策划表编表工具》 Excel转Json自动生成解析c#代码
Unity编译器 <策划表编表工具> Excel转Json自动生成解析c#代码 1.表格数据结构解释 2.Excel文件路径 3.C#代码与Json自动生成路径 点击下载依赖Dll程序集 ...
最新文章
- 使用Pygame制作微信打飞机游戏PC版
- Windows Azure Cloud Service (19) 动态指定WCF的发布地址
- WinCE5.0中应用程序如何直接写屏
- 根据XML配置规则导入Excel数据(⑥)ExcelAble 标记接口
- 音效摸鱼还不够爽?试试IDE里打几盘魂斗罗?
- .NET下日志系统的搭建——log4net+kafka+elk
- 胶囊网络(Capsule)实战——keras算法练习
- .NET环境下生成JSON的类库 - JSON.NET
- js闭包原理与例子[转]
- opesnstack四部曲(1)---keystone
- 计算机制图的简称市什么,计算机地的图制图复习题.doc
- navicat 与sqlserver2012连接报错无法连接到服务器
- 矩阵乘法求导计算公式推导
- jvm gc日志分析和工具
- 当生命科学遇上AI,会产生怎样1+1>2效果?
- APP上查个人信用报告靠谱吗?
- 一个实用分数类Fraction的Java实现
- 鸿蒙系统报名选择一个应用,申请鸿蒙系统有一个应用选择怎么选择呢
- 绕过Office文档的受保护视图
- cad调了比例因子没反应_CAD入门学习之如何修改比例因子