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

Decoding top level JSON array with json.Decoder

是否可以使用 json.Decoder 解码顶级 JSON 数组?

或者在这种情况下读取整个 JSON 和 json.Unmarshall 是唯一的方法?

我已阅读 this question 中已接受的答案,但无法弄清楚如何将其用于顶级 JSON 数组

https://play.golang.org/p/y2sKN7e8gf

请注意,不建议使用 var r interface{},您应该将 JSON 结构定义为 Go struct 以正确解析它。

您使用 json.Decoder 的方式与其他 json 相同。唯一不同的是,json 需要解码成一个结构片段,而不是解码成一个结构体。这是一个非常简单的例子。 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)
}