You use json.Decoder in same way as any other json. Only difference is that instead of decoding into a struct, json need to be decoded into a slice of struct. This is a very simple example. Go Playground
package main
import (
"bytes"
"encoding/json"
"fmt"
)
type Result struct {
Name string `json:"Name"`
Age int `json:"Age`
OriginalName string `json:"Original_Name"`
}
func main() {
jsonString := `[{"Name":"Jame","Age":6,"Original_Name":"Jameson"}]`
result := make([]Result, 0)
decoder := json.NewDecoder(bytes.NewBufferString(jsonString))
err := decoder.Decode(&result)
if err != nil {
panic(err)
}
fmt.Println(result)
}