4

Golang json字符串与结构互转(json to struct   struct to json) | 朋也的博客

 3 years ago
source link: https://tomoya92.github.io/2021/02/24/go-string2json/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Golang json字符串与结构互转(json to struct   struct to json)

朋也的博客 » 首页 » 文章

Golang json字符串与结构互转(json to struct || struct to json)

作者:朋也
日期:2021-02-24


版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证

go原生支持json与struct互转 java哭了

原文链接: https://tomoya92.github.io/2021/02/24/go-string2json/

type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func TestJsonToStruct(t *testing.T) {
    jsonstr := "{\n\"name\": \"tom\",\n\"age\": 11\n}"
    var user User
    json.Unmarshal([]byte(jsonstr), &user)

    fmt.Printf("user.name: %s, user.age: %d\n", user.Name, user.Age)
}

func TestJsonToSlice(t *testing.T) {
    jsonstr := "[\n{\n\"name\": \"tom\",\n\"age\": 11\n},\n{\n\"name\": \"john\",\n\"age\": 12\n}\n]"
    var users []User
    json.Unmarshal([]byte(jsonstr), &users)

    for _, user := range users {
        fmt.Printf("user.name: %s, user.age: %d\n", user.Name, user.Age)
    }
}

func TestStructToJson(t *testing.T) {
    user := User{Name: "tom", Age: 12}
    b, _ := json.Marshal(&user)
    fmt.Printf("jsonstr: %s\n", string(b))
}

func TestSliceToJson(t *testing.T) {
    var users [2]User
    users[0] = User{Name: "tom", Age: 12}
    users[1] = User{Name: "john", Age: 13}

    b, _ := json.Marshal(&users)
    fmt.Printf("jsonstr: %s\n", string(b))
}

扩展:string to []byte 和 []byte to string

// string to []byte
str := "hello world"
var data []byte
data = []byte(str)

// []byte to string
str1 := string(data)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK