go json解析Marshal和Unmarshal
来源:互联网 发布:java零基础入门书籍 编辑:程序博客网 时间:2024/06/06 04:29
go语言提供一个json解析的包。见 http://golang.org/pkg/encoding/json/
官方同时提供了一篇文章 JSON and Go 讲述json包的用法, 该文章同时存在中文翻译: JSON与Go 。
看过上述两篇文章后,基本使用应该就没问题了。
同时,贴几个官方的例子,方便理解。
Decoder
package main import ( "encoding/json" "fmt" "io" "log" "strings" ) func main ( ) { const jsonStream = ` { "Name" : "Ed" , "Text" : "Knock knock." } { "Name" : "Sam" , "Text" : "Who's there?" } { "Name" : "Ed" , "Text" : "Go fmt." } { "Name" : "Sam" , "Text" : "Go fmt who?" } { "Name" : "Ed" , "Text" : "Go fmt yourself!" } ` type Message struct { Name , Text string } dec := json. NewDecoder ( strings. NewReader ( jsonStream ) ) for { var m Message if err := dec. Decode ( & m ) ; err == io. EOF { break } else if err != nil { log . Fatal ( err ) } fmt. Printf ( "%s: %s \n " , m. Name , m. Text ) } }
Marshal序列化json格式
package main import ( "encoding/json" "fmt" "os" ) func main ( ) { type ColorGroup struct { ID int Name string Colors [ ] string } group := ColorGroup { ID : 1 , Name : "Reds" , Colors : [ ] string { "Crimson" , "Red" , "Ruby" , "Maroon" } , } b , err := json. Marshal ( group ) if err != nil { fmt. Println ( "error:" , err ) } os. Stdout . Write ( b ) }
Unmarshal 反序列化json格式
package main import ( "encoding/json" "fmt" ) func main ( ) { var jsonBlob = [ ] byte ( ` [ { "Name" : "Platypus" , "Order" : "Monotremata" } , { "Name" : "Quoll" , "Order" : "Dasyuromorphia" } ] ` ) type Animal struct { Name string Order string } var animals [ ] Animal err := json. Unmarshal ( jsonBlob , & animals ) if err != nil { fmt. Println ( "error:" , err ) } fmt. Printf ( "%+v" , animals ) }
原文:http://studygolang.com/articles/6742
0 0
- go json解析Marshal和Unmarshal
- java XML marshal unmarshal
- A generic JAXB marshal/unmarshal XmlType
- JAXB使用经验总结 unmarshal与marshal
- XmlUtil Marshal UnMarshal 不需要配置@XmlRootElement 注释
- GO语言练习:构建json 和 解析JSON 实例
- Go 解析JSON
- Go语言解析JSON
- go提交json、获取json、解析json
- Go语言解析json字符串
- go语言解析json库
- go 语言解析复杂json
- Go 基于Token解析JSON
- go-simplejson|解析json字符串
- json.Marshal的小细节
- Marshal.GetDelegateForFunctionPointer 方法和Marshal.GetFunctionPointerForDelegate 方法
- go interface 转 string,解析json
- go语言解析JSON的方法
- 集合框架-引入泛型
- css初始化(cssreset):yahoo标准
- 冒泡
- c++作業 ----- Binary Tree
- myeclipse/eclipse安装反编译插件步骤说明
- go json解析Marshal和Unmarshal
- Android点亮屏幕
- POJ 2262 Goldbach's Conjecture
- 关于INNODB引擎的一些学习概要(1)
- 选择排序——堆排序
- 基础学习day01
- HBCTF——WriteUp&&涨姿势(2)
- 取消事件冒泡(大小DIV)
- 360春秋杯writeup