json - 使用 Go 删除 JSON 字符串的第一个字段
问题描述
通过 http GET 请求,我将 JSON 响应导入字符串。我想使用 json.Unmarshal 将 JSON 字符串添加到结构数组中。这仅在我一开始删除字段数据和类别组时才有效。它们不是我结构的一部分。因此,通过删除开头的 {"data":{"categoryGroups": 和结尾的 }} 。
这可以通过 strings.Replace 来完成,但我想知道是否有更简洁的解决方案?
{"data":{"categoryGroups":[{"name":"...."}]}]}}
解决方案
根据评论的建议,我将您的场景复制如下:
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}]
推荐阅读
- keras - 如何使用 EarlyStopping 或 ModelCheckpoint 回调中的自定义指标?
- ios - 根据背景颜色调整图标颜色
- scala - 创建编码器后,在 Spark 中解析 Protobuf ByteString 不起作用
- php - 如何为所有缺货和所有库存产品添加自定义属性?
- csv - 如何将数据从工作表 1 移动到工作表 2 并将工作表 1 数据附加到旧工作表 2 数据之上
- openam - XUI 重定向到 /realms/root/users/undefined
- html - 为什么这个白色区域出现在我的模态窗口中?
- javascript - 我的代码被复制并粘贴了大约 5 次,但我怎样才能让它只有一次?
- python - import arcpy--ImportError :cannot import name 'gp' from 'arcpy.geoprocessing'
- c++ - 在 C++ Invoker main.cpp 上测试图像