将请求中的json转换为golang中的数组

rob*_*kos 2 go

如何将json数组转换为结构数组?例:

[
  {"name": "Rob"},
  {"name": "John"}
]
Run Code Online (Sandbox Code Playgroud)

我正在从请求中检索json:

body, err := ioutil.ReadAll(r.Body)
Run Code Online (Sandbox Code Playgroud)

我如何将其解组成阵列?

Not*_*fer 8

你只是用json.Unmarshal它.例:

import "encoding/json"


// This is the type we define for deserialization.
// You can use map[string]string as well
type User struct {

    // The `json` struct tag maps between the json name
    // and actual name of the field
    Name string `json:"name"`
}

// This functions accepts a byte array containing a JSON
func parseUsers(jsonBuffer []byte) ([]User, error) {

    // We create an empty array
    users := []User{}

    // Unmarshal the json into it. this will use the struct tag
    err := json.Unmarshal(jsonBuffer, &users)
    if err != nil {
        return nil, err
    }

    // the array is now filled with users
    return users, nil

}
Run Code Online (Sandbox Code Playgroud)