go語言 結構體和Json

2021-10-01 21:14:11 字數 2615 閱讀 2468

)//將int定義為 myint型

type myint int

// 為myint新增iszero()方法

func (m myint) isint() bool

// 為myint新增add()方法

func (m myint) addint(other int) int

//使用事件系統實現事件的響應和處理

type class struct

//給結構體新增乙個 do方法

func (c *class) do(v int)

//普通函式的do

func funcdo(v int)

//內嵌和結構體內嵌

//結構體可以包含乙個或者多個匿名(或內嵌)字段 即這些字段沒有顯示名字只有字段型別是必須的 此時型別也就是欄位的名字

//匿名字段本身可以是乙個結構體型別 即 結構體可以包含內嵌結構體

type inners struct

type other struct

type a struct

type b struct

//結構體內嵌模擬類的繼承

//可飛行的

type flying struct

func (f *flying) fly(name string)

//可行走的

type walkble struct

func (w *walkble) walk(name string)

//人類

type man struct

//鳥類

type bird struct

//初始化內嵌結構體

//例子 車輛的組裝和初始化

//車輪

type wheel struct

//引擎

type engine struct

//車type car struct

//使用匿名結構體解析json資料

//例子 手機為例

//定義手機螢幕

type screen struct

//定義電池

type battery struct

//生成json資料

func genjson() byte ,

// 電池引數

battery: battery,

// 是否有指紋識別

hastouchid: true,

}// 將資料序列化為json

jsondata, _ := json.marshal(raw)

return jsondata

}//將結構體利的資料 轉換為 json

//在轉換 json 格式時,json 的各個欄位名稱預設使用結構體的名稱,

//如果想要指定為其它的名稱我們可以在宣告結構體時新增乙個`json:" "`標籤,在" "中可以填入我們想要的內容

//宣告技能結構體

type skill struct

//宣告角色結構體

type actor struct

func main()

req, err := client.get("")

if err != nil

fmt.println(req.status)

class := new(class)

class.do(1)

//內嵌和結構體內嵌

outer := new(other)

outer.b = 2

outer.c = 1.2

outer.int = 60

outer.int1 = 20

outer.int2 = 30

fmt.println(outer)

c := new(b)

c.ay = 1

c.bx = 2

c.by = 3

c.sa = 4

fmt.println(c)

//例項化鳥類

bird := new(bird)

bird.fly("鳥")

bird.walk("鳥")

//例項化人類

man := new(man)

man.walk("男人")

//初始化內嵌結構體

car := car,

engine: engine,

}fmt.println(car)

//對json 字串的處理

jsondata := genjson()

fmt.println(string(jsondata))

// 填充基本角色資料

actior := actor,,,

},}

fmt.println(actior)

//轉換為json

result, err_1 := json.marshal(actior)

if err_1 != nil

fmt.println(string(result))

}

go語言中結構體與json

go語言中使用marshal函式實現結構體json化,需要有一下兩點注意 因為json化是在其他函式中完成,因此需要將結構體中的成員大寫,這樣才能在生成的結構體中有對應的元素 在結構體後面,如果有需要改寫欄位名稱,需要使用煩引號,指定對應的欄位名稱,支援多指定如json name db dbname...

go語言對結構體 map和切片進行json化

getjosn.py import fmt encoding json getjosn.py type teacher structgetjosn.py func structteacher 進行結構體的處理,並返回json後的資料和錯誤 data err json.marshal teacher1...

go語言結構體

go語言陣列可以儲存同一型別的資料 但在結構體中我們可以為不同項定義不同的資料型別 結構體是由一系列具有相同的型別或者不同型別的資料構成的資料集合 1.定義結構體 結構體定義需要使用type和struct語句。struct語句定義乙個新的資料型別,結構體中有乙個或者多個成員。type語句設定了結構體...