内容简介:使用marshal方法进行编码。
go struct 与 json
https://golang.org/pkg/encoding/json/#pkg-index
成员标签-tag
https://sosedoff.com/2016/07/16/golang-struct-tags.html
Only data structures that can be represented as valid JSON will be encoded: JSON objects only support strings as keys; to encode a Go map type it must be of the form map[string]T (where T is any Go type supported by the json package). // JSON的key只能是string类型,所有在支持Map的情况下,需要其对应的Map的key是string类型。 Channel, complex, and function types cannot be encoded. // 这些类型是无法被encoded的 Cyclic data structures are not supported; they will cause Marshal to go into an infinite loop. // 循环数据类型无法被encoded Pointers will be encoded as the values they point to (or 'null' if the pointer is nil). // 指针类型可以被encoded The json package only accesses the exported fields of struct types (those that begin with an uppercase letter). Therefore only the the exported fields of a struct will be present in the JSON output. // 只能访问那些exported的struct types类型的field(大写字母开头的)
使用
encode
使用marshal方法进行编码。
func Marshal(v interface{}) ([]byte, error)
举例使用一个 go 定义的一个structure Message
type Message struct {
Name string
Body string
Time int64
}
使用一个Message的实例被编码完以后的结果类似于下面
b == []byte(`{"Name":"Alice","Body":"Hello","Time":1294706395881547000}`)
编码中需要注意的内容
Only data structures that can be represented as valid JSON will be encoded:
JSON objects only support strings as keys; to encode a Go map type it must be of the form map[string]T (where T is any Go type supported by the json package).
// JSON的key只能是string类型,所有在支持Map的情况下,需要其对应的Map的key是string类型。
Channel, complex, and function types cannot be encoded.
// 这些类型是无法被encoded的
Cyclic data structures are not supported; they will cause Marshal to go into an infinite loop.
// 循环数据类型无法被encoded
Pointers will be encoded as the values they point to (or 'null' if the pointer is nil).
// 指针类型可以被encoded
The json package only accesses the exported fields of struct types (those that begin with an uppercase letter). Therefore only the the exported fields of a struct will be present in the JSON output.
// 只能访问那些exported的struct types类型的field(大写字母开头的)
decode
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Persuasive Technology
B.J. Fogg / Morgan Kaufmann / 2002-12 / USD 39.95
Can computers change what you think and do? Can they motivate you to stop smoking, persuade you to buy insurance, or convince you to join the Army? "Yes, they can," says Dr. B.J. Fogg, directo......一起来看看 《Persuasive Technology》 这本书的介绍吧!