go encoding/json 介紹

因爲我一直是一名前端工程師,因此我會在前端的角度將js中的json操做和go中的操做作一個類比方便你們的理解。前端

將字符串轉換爲對象

js : JSON.parse(`{"name":"cfl"}`)
go : json.Unmarshalgolang

jsonStr := `{
         "name":"cfl",
        "age":10,
        "friend":[{"name":"sx",
            "age":10
        }]
    }`
    type User struct {
        Name   string
        Age    int64
        Friend []User
    }
    var cfl User
    json.Unmarshal([]byte(jsonStr), &cfl)
    fmt.Printf("%+v", cfl)

將對象轉換爲json

js: JSON.stringify
go: json.Marshaljson

type User struct {
        Name   string
        Age    int64
        Friend []User
    }
    cfl := User{
        Name: "cfl",
        Age:  10,
        Friend: []User{
            {Name: "sx", Age: 10},
        },
    }

    jsonStr, _ := json.Marshal(cfl)
    fmt.Printf("%v\n", string(jsonStr))

其餘的經常使用方法

json.Valid(byte[]) //校驗json字符串是否合法
json.Indent  //按照必定的格式縮進 
json.Compact  //壓縮
json.MarshalIndent //轉換回帶縮進的json字符串

參考資料 encoding/jso前端工程師

相關文章
相關標籤/搜索