go语言json处理

Python023

go语言json处理,第1张

json是一种经常使用的数据格式,下面总结一下json的使用

json与struct转换的话struct的属性必须首字母大写。

当用的多了就会发现一个致命的问题:go默认会将特殊字符转义采用以下方法可以解决:

处理方法1

处理方法2

不管是属性组成的还是Tag组成的json字符串,都可以正常的解析

tag:

json:"-" // 表示不进行序列化

IsOnSale bool json:"is_on_sale,string" //序列化后转成string

ProductID int64json:"product_id,omitempty" //为零值时忽略

序列化或者反序列化时可以指定类型,支持string,number和boolean

IsOnSale bool json:"is_on_sale,string"

注意:

正确使用第一个,第二个回报错

struct

Go语言中,也有struct,定义与C语言类似,举例说明如下:

type person struct {

name string

age int

}

上面就声明了一个结构体person,包含两个字段。可以如下来使用这个struct:

var P person//P现在就是person类型的变量了

P.name = "shicq"//赋值给P的name属性

P.age = 31//赋值给P的age属性

fmt.Printf("The person's name is %s", P.name)//访问P的name属性

除了上面这种P的声明使用之外,还有两种声明使用方式:

(1)按照顺序提供初始化值。

P := person("Li Lei", 25)

(2)通过field:value的方式初始化,这样可以任意顺序。

P := person(age:24, name:"Han Meimei")