Golang解析JSON提取数组

时间:2018-04-27 14:50:54

标签: json go

我与Go合作。

我想解析一个JSON文件。但我只需要JSON文件中的一个数组,而不是所有结构。

这是JSON文件:link

我只需要items的数组。

如何从JSON中提取此数组?

1 个答案:

答案 0 :(得分:1)

这取决于你的结构的定义。如果你只想要项目数组,你应该解组主结构,然后获取items数组。

类似这样的事情

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "os"
)

type Structure struct {
    Items []Item `json:"items"`
}
type Item struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
}

func main() {
    data, err := ioutil.ReadFile("myjson.json")
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
    structure := new(Structure)
    json.Unmarshal(data, structure)
    theArray := structure.Items
    fmt.Println(theArray)
}

Unmarshal将忽略您未在结构中定义的字段。所以这意味着你应该只添加你要解组的内容

我使用了这个JSON

{
    "total_count": 123123,
    "items": [
        {
            "id": 1,
            "name": "name1"
        },
        {
            "id": 2,
            "name": "name2"
        }
    ]
}