// code_031_json_unmarshal project main.go
package main
import (
"encoding/json"
"fmt"
)
//可以使用json.Unmarshal()函数将JSON格式的文本解码为 Go 里面预期的数据结构。
//json.Unmarshal()函数的原型如下:
// func Unmarshal(data []byte, v interface{}) error
// 该函数的第一个参数是输入,即JSON格式的文本(比特序列)
// 第二个参数表示目标输出容器,用于存放解码后的值。
type IT struct {
Company string `json:"company"`
Subject []string `json:"subjects"`
IsOk bool `json:"isok"`
Price float64 `json:"price"`
}
func main() {
//第一:反序列化,完整字段。
// b为从前端接收的数据
b := []byte(`{
"company":"alibaba",
"subjects":[
"Go",
"C++",
"Python",
"Test"
],
"isok":true,
"price":666.666
}`)
var t IT //声明目标输出容器,用于存放解码后的值
err := json.Unmarshal(b, &t) //调用函数,并传递两个参数:JSON的比特序列,目标输出的容器
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(t)
//第二种:反序列化部分字段,如:Subjects字段。
type IT2 struct {
Subjects []string `json:"subjects"`
}
var t2 IT2
err1 := json.Unmarshal(b, &t2)
if err1 != nil {
fmt.Println("json err:", err)
}
fmt.Println(t2)
}
以上所述就是小编给大家介绍的《Go语言的JSON输入(解码)(反序列化)之struct存储》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Netty-解码器架构与常用解码器
- Glide 缓存与解码复用
- 音频解码 Audio Converter
- golang之Json编码解码
- 解码器 与 编码器
- WeIdentity 源码分析 | 狗哥解码(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法设计与分析基础
Anany levitin / 潘彦 / 清华大学出版社 / 2007-1-1 / 49.00元
作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法都能进行准确分类,从而使本书的读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。 本书十分适合作为算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者......一起来看看 《算法设计与分析基础》 这本书的介绍吧!