我在Go中解析一个大型JSON文件,我只需要从JSON中获取特定项目。
它通常是一个非常大的文件,但最终,它变成了这个:
"textAnnotations": [
{
"boundingPoly": {
"vertices": [
{
"x": 136,
"y": 119
},
{
"x": 5606,
"y": 119
},
{
"x": 5606,
"y": 3985
},
{
"x": 136,
"y": 3985
}
]
},
"description": "Description",
"locale": "en"
},
{
"boundingPoly": {
"vertices": [
{
"x": 3420,
"y": 122
},
{
"x": 3439,
"y": 122
},
{
"x": 3439,
"y": 144
},
{
"x": 3420,
"y": 144
}
]
},
"description": "10"
},
{
"boundingPoly": {
"vertices": [
{
"x": 4106,
"y": 119
},
{
"x": 4128,
"y": 119
},
{
"x": 4128,
"y": 141
},
{
"x": 4106,
"y": 141
}
]
},
"description": "12"
},
我需要在“textAnnotations”中获取所有“boundingPoly”的顶点和描述。我已经看了几个JSON解析库,但似乎没有一个完全符合我的要求。
答案 0 :(得分:1)
你只需要正确布局你的结构。
这样的事情:
type YourType struct {
TextAnnotations []struct {
BoundingPoly struct {
Vertices []struct {
X int `json:"x"`
Y int `json:"y"`
} `json:"vertices"`
} `json:"boundingPoly"`
Description string `json:"description"`
Locale string `json:"locale,omitempty"`
} `json:"textAnnotations"`
}
剩下的就是直截了当:https://play.golang.org/p/ICtREyQyjF
答案 1 :(得分:0)
您可以使用此工具从JSON示例自动生成Go结构:https://mholt.github.io/json-to-go/
每次我需要为复杂的JSON对象创建结构时,我都在使用它。