[GO]通过结构体生成json
package main import (
"encoding/json"
"fmt"
) type IT struct { //一定要注意这里的成员变量的名字首字母必须是大写
Company string
Subjects []string
Isok bool
Price float64
} func main() {
s := IT{"zyg", []string{"go", "python", "java"}, true, 3.14}//json的初始化
buf, err := json.Marshal(s)//使用这个函数会返回两个值,通过源码得知
if err != nil {
fmt.Println("err = ", err)
return
}
fmt.Println("buf = ", string(buf)) //注意这里生成的buf是一个byte切片,如果直接打印会是一串数字,这里使用string函数进行转化
}
执行的结果为
buf = {"Company":"zyg","Subjects":["go","python","java"],"Isok":true,"Price":3.14}
这样可读性不太好,如果用于展示可以使用这个函数
buf, err := json.MarshalIndent(s, "", " ")
执行的结果就会好看一些
buf = {
"Company": "zyg",
"Subjects": [
"go",
"python",
"java"
],
"Isok": true,
"Price": 3.14
}
当然这样的结果对于开发数据交换里可以会有问题,比如在Isok那一栏里就有可能别人需要的是“true",而不是true,那这样就可以使用_struct_tag方式
将结构体变更为这样的方式
type IT struct {
Company string `json:"-"` //这样的方式可以让这个头不显示
Subjects []string `json:"subjects"` //这种方式二次编码
Isok bool `json:",string"` //将一栏的值显示为string类型
Price float64
}
执行的结果为
buf = {
"subjects": [ //这里变更为小写了
"go",
"python",
"java"
],
"Isok": "true", //这里变更为字符串了
"Price": 3.14
}
company也没有再显示了
[GO]通过结构体生成json的更多相关文章
- go语言之进阶篇通过结构体生成json
1.通过结构体生成json 示例: package main import ( "encoding/json" "fmt" ) //成员变量名首字母必须大写 t ...
- Go语言结构体转json的坑
Go语言结构体转json的坑 标签(空格分隔): go json.Marshal() JSON输出的时候必须注意,只有导出的字段(首字母是大写)才会被输出,如果修改字段名,那么就会发现什么都不会输出, ...
- struct2json -- C结构体与 JSON 快速互转库V1.0发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zhutianlong/article/d ...
- Go语言使用匿名结构体解析JSON数据
手机拥有屏幕.电池.指纹识别等信息,将这些信息填充为 JSON 格式的数据.如果需要选择性地分离 JSON 中的数据则较为麻烦.Go 语言中的匿名结构体可以方便地完成这个操作. 首先给出完整的代码,然 ...
- c# 利用结构体获取json数据
最近做微信支付,要获取用户的openid,调用接口后返回的是json格式的数据,我想在c#后台把数据逐一取出,网上查了查,找到以下方法: 1.首先调用接口,要有一个post数据到指定url并返回数据的 ...
- Golang操作结构体、Map转化为JSON
结构体生成Json package main import ( "encoding/json" "fmt" ) type IT struct { Company ...
- Go - Struct 结构体
目录 概述 声明结构体 生成 JSON 改变数据 推荐阅读 概述 结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合. 声明结构体 //demo_11.go pack ...
- C# 结构体和List<T>类型数据转Json数据保存和读取
C# 结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...
- Go 结构体和map等数据结构转json字符串
Go语言中使用json包中的 Marshal() 函数将数据结构转成json字符串,源代码: func Marshal(v interface{}) ([]byte, error) { e := ne ...
随机推荐
- POJ 3061 Subsequence(尺取法)
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18145 Accepted: 7751 Desc ...
- 如何利用JConsole观察分析Java程序的运行并进行排错调优_java
如何利用JConsole观察分析Java程序的运行并进行排错调优_java 官方指导 use jconsole use jmx technology
- 017:磁盘I/0介绍和测试
一. 磁盘 1. 磁盘的访问模式 顺序访问 顺序的访问磁盘上的块: 一般经过测试后,得到该值的单位是MB/s,表示为磁盘带宽,普通硬盘在 50~ 100 MB/s 随机访问 随机的访问磁盘上的块 也可 ...
- 运维平台cmdb开发-day3
后台管理 1. 访问过程 我们在前面2天得到了各个客户端的资产数据信息,我们将各个这个数据打包发送到api,这个api其实就是django的url传参,之后按照数据的格式对比数据库增删改 2. 后台页 ...
- canvas之抒写文字
<canvas id="canvas" width="500" height="400" style="background ...
- python基础知识之列表、元祖、字典、集合、字符串。
1.可变类型之列表 列表用 [ ]来定义是可变的,可以通过索引值来去查询里面的字段可以可以追加,删除等 names='zhangyang guyun xiangpeng xuliangwei' nam ...
- svn删除
[本地删除.然后提交到服务器]与[服务器删除然后本地更新] svn delete svn://路径(目录或文件的全路径) -m “删除备注信息文本” 推荐如下操作: svn delete 文件名 sv ...
- Flask之模板
2 了解Jinja2模板 知识点 模板使用 变量 过滤器 web表单 控制语句 宏.继承.包含 Flask中的特殊变量和方法 3.1 模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简 ...
- [Z]Password-based encryption in Java: salt and key derivation
http://www.javamex.com/tutorials/cryptography/pbe_salt.shtml 另外,这个网站好像有很多很深入而且很详尽的教程.目测是个类似于官方的或者大牛们 ...
- 华为路由器pppoe拨号
一.概要 模拟pppoe 拨号 , 软件 ensp , 简单拓扑: 二.配置 1.基本环境配置 pc1 AR1 int gi 0/0/0 ip add 192.168.10.254 24 2.开始 ...