首页 > 解决方案 > 使用 Go 删除​​ JSON 字符串的第一个字段

问题描述

通过 http GET 请求,我将 JSON 响应导入字符串。我想使用 json.Unmarshal 将 JSON 字符串添加到结构数组中。这仅在我一开始删除字段数据和类别组时才有效。它们不是我结构的一部分。因此,通过删除开头的 {"data":{"categoryGroups": 和结尾的 }} 。

这可以通过 strings.Replace 来完成,但我想知道是否有更简洁的解决方案?

{"data":{"categoryGroups":[{"name":"...."}]}]}}

标签: jsongo

解决方案


根据评论的建议,我将您的场景复制如下:

package main

import (
    "encoding/json"
    "fmt"
)

var data = []byte(`{"data":{"categoryGroups":[{"name":"group1"}]}}`)

type CategoryGroup struct {
    Name string `json:"name"`
}

func main() {
    var v struct {
        Data struct {
            CategoryGroups []CategoryGroup `json:"categoryGroups"`
        } `json:"data"`
    }
    if err := json.Unmarshal(data, &v); err != nil {
        panic(err)
    }

    cgs := v.Data.CategoryGroups
    fmt.Println(cgs)
}

输出:

[{group1}]

推荐阅读