英文:
Unmarshal a dynamic json
问题
我有一堆需要解析的JSON文件。它们基本上具有相同的格式,但是长度不同。
一个例子:
https://pastebin.com/htt6k658
另一个例子:
https://pastebin.com/NR1Z08f4
我尝试了几种方法,比如构建如下的结构体:
type TagType struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
Tags []Tag `json:"tags"`
}
type Tag struct {
ID int `json:"users"`
Name string `json:"name"`
Slug string `json:"slug"`
}
还尝试了使用接口的方式:
json.Unmarshal([]byte(empJson), &result)
但是这些方法都没有起作用。
英文:
I have a bunch of JSON files that I need to Unmarshal. They have basically the same format, but different "length"
one example
https://pastebin.com/htt6k658
another example
https://pastebin.com/NR1Z08f4
I have tried several methods, like building structs like
type TagType struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
tags []Tag `json:"tags"`
}
type Tag struct {
ID int `json:"users"`
Name string `json:"name"`
Slug string `json:"slug"`
}
also with an interface, like
json.Unmarshal([]byte(empJson), &result)
but none of these methods worked.
答案1
得分: 1
JSON输入是一个数组,所以这应该可以工作:
var result []TagType
json.Unmarshal(data, &result)
英文:
The JSON input is an array, so this should work:
var result []TagType
json.Unmarshal(data,&result)
答案2
得分: 0
你可以使用在线工具,比如https://transform.tools/json-to-go,来生成Go语言的结构体:
type AutoGenerated []struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
Tags []struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
} `json:"tags"`
}
这段代码定义了一个Go语言的结构体,其中包含了ID
、Name
、Slug
和Tags
等字段。Tags
字段是一个嵌套的结构体切片,包含了ID
、Name
和Slug
等字段。这个结构体可以用于解析JSON数据。
英文:
You can use a online tool like https://transform.tools/json-to-go for generating the Go struct:
type AutoGenerated []struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
Tags []struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
} `json:"tags"`
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论