Is it possible to decode top level JSON array with json.Decoder?
Or reading entire JSON and json.Unmarshall is the only way in this case?
I have read the accepted answer in this question and cannot figure out how to use it with top level JSON array
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)
}
https://play.golang.org/p/y2sKN7e8gf
Note that use of var r interface{}
is not recommended, you should define your JSON structure as a Go struct
to parse it correctly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With