GO 通過結構體生成json

2022-08-31 01:39:10 字數 765 閱讀 9460

package main

import (

"encoding/json""

fmt"

)type it

struct

func main() , true, 3.14}//

json的初始化

buf, err := json.marshal(s)//

使用這個函式會返回兩個值,通過原始碼得知

if err !=nil

fmt.println(

"buf =

", string

(buf)) //注意這裡生成的buf是乙個byte切片,如果直接列印會是一串數字,這裡使用string函式進行轉化

}

執行的結果為

buf =

這樣可讀性不太好,如果用於展示可以使用這個函式

buf, err := json.marshalindent(s, "", "

")

執行的結果就會好看一些

buf =

當然這樣的結果對於開發資料交換裡可以會有問題,比如在isok那一欄裡就有可能別人需要的是「true",而不是true,那這樣就可以使用_struct_tag方式

將結構體變更為這樣的方式

type it struct

執行的結果為

buf =

company也沒有再顯示了

go語言 結構體和Json

將int定義為 myint型 type myint int 為myint新增iszero 方法 func m myint isint bool 為myint新增add 方法 func m myint addint other int int 使用事件系統實現事件的響應和處理 type class s...

go語言中結構體與json

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

go 通過建構函式建立結構體指標和結構體變數的差異

在學習 go 語言結構時,遇到這樣乙個問題 對於此疑問,我做了如下實驗 type person struct newperson 返回乙個結構體變數 func newperson name string age int person 在建立結構體時,返回其記憶體位址 fmt.printf p n r...