在Golang中使用json.Decoder解码顶级JSON数组

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 in array 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.