Go 中 JSON 的序列化和反序列化
golang中对json的序列化/反序列化操作还是比较容易的,
序列化操作主要是通过encoding/json
包的Marshal()
方法来实现,
反序列化操作主要是通过encoding/json
包的Unmarshal()
方法来实现.
//JSON序列化和反序列化
//可用在api序列化输出
//转成结构体,方便程序操作等
package main
import (
"encoding/json"
"fmt"
)
type Response1 struct {
Page int
Fruits []string
}
type Response2 struct {
Page int `json:"page"`
Fruits []string `json:"fruits"`
}
func main() {
//布尔型
boolByte, _ := json.Marshal(true)
fmt.Println(string(boolByte))
//整数型
intByte, _ := json.Marshal(100)
fmt.Println(string(intByte))
//浮点型
floatByte, _ := json.Marshal(1.23456)
fmt.Println(string(floatByte))
//字符串
stringByte, _ := json.Marshal("字符串啊啊啊")
fmt.Println(string(stringByte))
//切片
sliceByte, _ := json.Marshal([]string{"apple", "orange", "banana"})
fmt.Println(string(sliceByte))
//字典
mapByte, _ := json.Marshal(map[string]int{"apple": 5, "orange": 6, "banana": 7})
fmt.Println(string(mapByte))
//自定义类型1
customsByte1, _ := json.Marshal(&Response1{Page: 1, Fruits: []string{"apple", "orange", "banana"}})
fmt.Println(string(customsByte1))
//自定义类型2,tag语法
customsByte2, _ := json.Marshal(&Response2{Page: 2, Fruits: []string{"apple", "orange", "banana"}})
fmt.Println(string(customsByte2))
//反序列化到结构体
json1 := `{"Page":1,"Fruits":["apple","orange","banana"]}`
json2 := `{"page":2,"fruits":["apple","orange","banana"]}`
response1 := Response1{}
response2 := Response2{}
json.Unmarshal([]byte(json1), &response1)
fmt.Println(response1)
json.Unmarshal([]byte(json2), &response2)
fmt.Println(response2)
}
Go 中 JSON 的序列化和反序列化的更多相关文章
- Asp.net中Json的序列化和反序列化(一)
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
- ASP.NET中JSON的序列化和反序列化
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介 ...
- ASP.NET 中JSON 的序列化和反序列化
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
- ASP.NET中JSON的序列化和反序列化(转)
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
- [转]ASP.NET中JSON的序列化和反序列化
本文转自:http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html JSON是专门为浏览器中的网页上运行的JavaScript代码 ...
- Asp.net中Json的序列化和反序列化(二)
三.JSON序列化和反序列化日期时间的处理 JSON格式不直接支持日期和时间.DateTime值值显示为“/Date(700000+0500)/”形式的JSON字符串,其中第一个数字(在提供的示例中 ...
- Asp.Net中JSON的序列化和反序列化-----JavaScriptSerializer ,加上自己工作心得
在工作中和手机通信用到web服务和javascriptSerializer,返回json数据,供手机端调用,一开始返回的数据是一大堆,比如 [{"word_picture9":&q ...
- .NET中JSON的序列化和反序列化的几种方式
一.什么是JSON JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集 ...
- golang中json包序列化与反序列化
package main import ( "encoding/json" "fmt" "reflect" ) type Info stru ...
- Javascript中JSON的序列化和反序列化(转)
parse用于从一个字符串中解析出JSON对象,如: var str = '{"name":"easonjim","age":"2 ...
随机推荐
- Note -「基本子串结构」速通笔记
学习自 crashed 的<一类基础子串数据结构>摘抄及注解, 略过了一些 crashed 口中 "用不上" 的东西. 这里是速通笔记, 希望快速学习技巧的读者可以 ...
- MyBatis中的 10 个宝藏技巧!
前言 说到 MyBatis,很多小伙伴都会用,但未必用得"惊艳". 实际上,这个轻量级的持久层框架还有很多隐藏的"宝藏技巧". 如果你能掌握这些技巧,不但能让开 ...
- 在OERV也可以玩MC(上)
最近发现一个比较有意思的事情,原来HMCL这个项目也移植到RISC-V上了,之前一直没有发现,因此在OERV(openEuler RISC-V的简称)玩MC也是可以的了.首先,HMCL是一款功能丰富的 ...
- 用 C# 实现检测系统环境变量 “Path” 中是否有某个值,没有就添加的方法
用 C# 实现检测系统环境变量 "Path" 中是否有某个值,没有就添加的方法: using System; using System.Collections.Generic; u ...
- Ubuntu13 安装vim
问题 由于系统没有vim,只有vi,而vi 编辑文件时比较麻烦,不易操作,还没有关键词高亮显示等,故想安装vim 输入命令: sudo apt install vim 报错,找不到 apt 命令,即没 ...
- Nginx防盗链设置
原文:https://blog.liuzijian.com/post/e2c56cc3-1002-4f41-aec8-9a69f57e3c3f.html 1.防止盗链 要防止特定路径下的图片被盗链,可 ...
- Fractal pg walkthrough Easy
nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.157.233 Starting Nmap 7.94SVN ( https://nmap.org ) a ...
- 小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
上个月极低的价格得到一台CR6606和一台CR6609, 一直没时间研究, 终于趁春节假期把这两个都刷成 OpenWRT 配置说明 CPU: MT7621AT,双核880MHz 内存: NT5CC12 ...
- TortoiseGit拉取出现“Could not open repository. libgit2 returned: repository path……”错误的解决办法
TortoiseGit拉取出现"Could not open repository. libgit2 returned: repository path--"错误的解决办法 1.问 ...
- Maven配置代理
Maven配置代理 找到settings.xml文件: 通常位于Maven安装目录下的conf文件夹中.或者位于用户目录下的.m2文件夹中(例如:$HOME/.m2/settings.xml). 编辑 ...