go/struct嵌套/struct的添加

golang生成json和解json数据都很简单,通过官方的“encoding/json”包,调用json.Marshal生成()和json.Unmarshal()解数据。 

接下来重点讲嵌套的情况下如何生成json,如下:

type   AlipayRemoteReqStruct   struct{   

 Ono    string   `json:ono`

OrderItem     []Item     `json:item`

OrderRefund    []Refund   `json:refund`

}

type    Item   struct{    

Ono  string      `json:ono`

Oid    int            `json:oid`

}

type    Refund     struct{ 

Ono       string` json:ono ` 

Itemint     `json:item`

Content     string`json:content`

Imgs          string`json:imgs`

Status      string`json:status`

}


生成Json:

var m AlipayRemoteReqStruct

m.Ono="12345"

m.OrderItem= append(m.OrderItem, Item{Ono:"Shanghai_VPN", Oid:1})

m.OrderItem= append(m.OrderItem, Item{Ono:"Beijing_VPN", Oid:2})

for i :=1; i < 6; i++ 

{

str := []byte("物品")   

 str = strconv.AppendInt(str, int64(i),10)    

orderi := Item{Ono: string(str), Oid: i}    

m.OrderItem= append(m.OrderItem, orderi)}

bytes, _ := json.Marshal(m)

fmt.Printf("json:m,%s\n", bytes)

var js AlipayRemoteReqStruct

err := json.Unmarshal(bytes, &js)

if err != nil {    fmt.Printf("format err:%s\n",err.Error())    return}


结果: 

json数据: 

json:m,{“Ono”:”12345”, 

“OrderItem”:[{“Ono”:”Shanghai_VPN”,”Oid”:1},{“Ono”:”Beijing_VPN”,”Oid”:2},{“Ono”:”物品1”,”Oid”:1}, 

{“Ono”:”物品2”,”Oid”:2},{“Ono”:”物品3”,”Oid”:3}, 

{“Ono”:”物品4”,”Oid”:4}, 

{“Ono”:”物品5”,”Oid”:5}], 

“OrderRefund”:null} 

解出来的数据: 

{12345 [{Shanghai_VPN 1} {Beijing_VPN 2} {物品1 1} {物品2 2} {物品3 3} {物品4 4} {物品5 5}] []}

你可能感兴趣的:(go/struct嵌套/struct的添加)