Golang - 处理json
Golang - 处理json
1. 编码json
使用json.Marshal()函数可以对一组数据进行JSON格式的编码
func Marshal(v interface{}) ([]byte, error)
通过结构体生成json,结构体属性字段名首字母要大写
package main import (
"encoding/json"
"fmt"
) type Person struct {
Name string
Hobby string
} func main() {
p := Person{"luhan", "男"}
//1.生成JSON文本
b, err := json.Marshal(p)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(b))
//2.生成格式化json,没啥用
b, err = json.MarshalIndent(p, "", " ")
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(b))
}
struct tag
-是隐藏字段
也可以直接写别名,包含首字母小写的单词
通过map生成json
package main
import (
"encoding/json"
"fmt"
)
func main() {
//创建map
mmp := make(map[string]interface{})
mmp["name"] = "luhan"
mmp["age"] = 56
mmp["niubility"] = true
//map转为json
mjson, err := json.Marshal(mmp)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(mjson))
}
2. 解码json
解析到结构体
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Hobby string `json:"hobby"`
}
func main() {
//1.准备一段json
b := []byte(`{"Name":"luhan","Hobby":"男"}`)
//2.声明结构体
var p Person
//3.解析
err := json.Unmarshal(b, &p)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(p)
}
解析到interface
package main
import (
"encoding/json"
"fmt"
)
func main() {
//1.准备一段json
b := []byte(`{"Name":"luhan","Hobby":"男"}`)
//2.声明空接口
var i interface{}
//3.解析
err := json.Unmarshal(b, &i)
if err != nil {
fmt.Println("json err:", err)
}
//自动转map
fmt.Println(i)
//4.使用interface的json,可以判断类型
m := i.(map[string]interface{})
for k, v := range m {
switch vv := v.(type) {
case string:
fmt.Println(k, "是string类型", vv)
case int:
fmt.Println(k, "是int类型", vv)
default:
fmt.Println(k, "是其他类型")
}
}
}
Golang - 处理json的更多相关文章
- 48 【golang】json的效率
本文将主要做如下几方面的测试: 1,构造一个[100]struct的数组,然后来测试它的json编码后的字符串 或者([]byte),首先关心它的功能是否正常: 2,在很早之前,我们在使用golang ...
- Go_14:GoLang中 json、map、struct 之间的相互转化
1. golang 中 json 转 struct <1. 使用 json.Unmarshal 时,结构体的每一项必须是导出项(import field).也就是说结构体的 key 对应的首字母 ...
- Golang 处理 Json(二):解码
golang 编码 json 还比较简单,而解析 json 则非常蛋疼.不像 PHP 一句 json_decode() 就能搞定.之前项目开发中,为了兼容不同客户端的需求,请求的 content-ty ...
- Golang 处理 Json(一):编码
JSON 是一种数据格式描述语言.以 key 和 value 构成的哈系结构,类似 Javascript 中的对象,python 中的字典.通常 json 格式的 key 是字符串,其值可以是任意类型 ...
- GoLang中 json、map、struct 之间的相互转化
1. golang 中 json 转 struct <1. 使用 json.Unmarshal 时,结构体的每一项必须是导出项(import field).也就是说结构体的 key 对应的首字母 ...
- golang解析json报错:invalid character '\x00' after top-level value
golang解析json报错:invalid character '\x00' after top-level value 手动复制字符串:{"files":["c:/t ...
- golang webservice[ json Martini webframe]
golang webservice[ json Martini webframe] https://github.com/brunoga/go-webservice-sample 自己修改了一下例子, ...
- Golang的json包
encoding/json encoding/json是官方提供的标准json, 实现RFC 7159中定义的JSON编码和解码.使用的时候需要预定义struct,原理是通过reflection和in ...
- Golang解析json的几种方法
Golang解析json的几种方法 概要 使用Golang调用其它平台API接口时总会被多层的json串给恶心到,我记录一下自己解析json的几种方法. 一.自带的json包 func JsonUnm ...
随机推荐
- SpringMVC案例2----基于spring2.5的注解实现
和上一篇一样,首先看一下项目结构和jar包 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVuamFtaW5fd2h4/font/5a6L5L2T/fo ...
- css中的绝对定位和相对定位(详解,总结)
css中的绝对定位和相对定位(详解,总结) 总结: 设置绝对定位或者相对定位后都从文档中浮起来了,区别是相对定位还占着原来的位置,绝对定位不占着原来的位置,可以种z-index来改变元素的浮动的堆叠次 ...
- 【HDU1698】 Just a Hook 【线段树入门】
原题:原题链接 题意:(机器翻译的...) 让我们将钩子的连续金属棒从1到N编号.对于每次操作,Pudge可以将连续的金属棒(从X到Y编号)改为铜棒,银棒或金棒. 钩的总值计算为N个金属棒的值的总和. ...
- 【Usaco2006Mar】Milk Team Select产奶比赛
[思路分析] 比赛的时候想到了用我确实也想到了树形DP,但是状态没有确定对,连样例都没有过 PS:这是第二道发现还可以用状态作为答案最后输出的题目 正解:树形DP(背包) 按照读进来的数据,我们先建一 ...
- BZOJ 4525 二分
思路: 满足二分性质... 二分一下 就完了 //By SiriusRen #include <cstdio> #include <algorithm> using ...
- BZOJ 2118 Dijkstra
思路: 经典题 不解释 找到最小的数mn 所有都是在mod mn的意义下 搞得 i->(i+a[i])%mn 边权为a[i] //By SiriusRen #include <queue ...
- [Luogu 2331] [SCOI2005]最大子矩阵
[Luogu 2331] [SCOI2005]最大子矩阵 题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 ...
- java bean转Map
/** * @author xxxxxxxxxxx * @param object * 待转化类 * @param format自定义转化类型 * @return Map<String,Stri ...
- 解决QQ未启用状态,QQ留言图标未启用
最近由于腾讯升级QQ一些东西,导致QQ图标成未启用状态:如图 解决方法,到腾讯此站点登陆一下即可, http://wp.qq.com/set.html 另外设置 没有保存按钮,如果选择完全公开,到自己 ...
- spring data jpa 、hibernate、jpa之间的关系
引用:http://blog.csdn.net/u014421556/article/details/52635000 hibernate作为JPA的实现. JPA规范与ORM框架之间的关系 ...