我需要定义与JSON.Unmarshal完全相同的JSON结构吗?

我需要定义与JSON.Unmarshal完全相同的JSON结构吗?,json,go,Json,Go,我获取一个子Reddit并将其作为JSON响应接收 问题是回报有点大,有很多字段,但我只想要其中的一些 结构类似于: data.children.data.fields Children是一个数组,所以我不能像我想的那样访问它,但这只是一个示例 我将JSON粘贴到QuickType上以查看它返回的内容,结构很大 那么,有没有一种方法可以使用json.Unmarshal只获取我想要的字段 希望有人能帮助我,提前谢谢 可以将结构与只需要的字段一起使用。看看下面的例子 package main i

我获取一个子Reddit并将其作为JSON响应接收

问题是回报有点大,有很多字段,但我只想要其中的一些

结构类似于:

data.children.data.fields

Children是一个数组,所以我不能像我想的那样访问它,但这只是一个示例

我将JSON粘贴到QuickType上以查看它返回的内容,结构很大

那么,有没有一种方法可以使用json.Unmarshal只获取我想要的字段


希望有人能帮助我,提前谢谢

可以将结构与只需要的字段一起使用。看看下面的例子

package main

import (
    "encoding/json"
    "fmt"
)

type Test struct {
    Field1 int    `json:"field1"`
    Field2 string `json:"field2"`
}

func main() {

    jsonString := `{
    "field1": 1,
    "field2": "test field 2",
    "field3": "test field 3"
}`

    t := Test{}

    err := json.Unmarshal([]byte(jsonString), &t)

    if err != nil {
        fmt.Println(err)
    }

    fmt.Println("\n", t)
}

你可以定义一个结构,它的结构与你想要的字段的结构相匹配,你不必仅仅因为它们在json中就定义所有字段,只需定义你需要的字段,只需确保它们在结构和类型上匹配。好吧,我要尝试一下,我不知道Quicktype,这太酷了!