如何在golang中映射或生成变量json响应的结构?
我正在调用一个API并获取json,但不知道如何为响应生成一个结构,我已经使用json来获取响应的结构。但问题是,每次的反应都不一样。 例如,我有一个使用JSON的结构:-如何在golang中映射或生成变量json响应的结构?,json,api,go,struct,Json,Api,Go,Struct,我正在调用一个API并获取json,但不知道如何为响应生成一个结构,我已经使用json来获取响应的结构。但问题是,每次的反应都不一样。 例如,我有一个使用JSON的结构:- type Autogenerated struct { Response struct { Results struct { Status string `json:"status"` StatusCode int
type Autogenerated struct {
Response struct {
Results struct {
Status string `json:"status"`
StatusCode int `json:"status_code"`
ResultsData struct {
ResultsCount int `json:"results_count"`
NearbyCount int `json:"nearby_count"`
} `json:"results_data"`
SortData struct {
SortBy string `json:"sort_by"`
} `json:"sort_data"`
ResponseData struct {
Data0 struct {
Name string `json:"name"`
} `json:"data_0"`
Data1 struct {
Name string `json:"name"`
} `json:"data_1"`
} `json:"response_data"`
Time float64 `json:"time"`
} `json:"results"`
} `json:"response"`
}
数据1和数据0可以更像数据2、数据3….,我希望名称位于数据0、数据1….的内部。。。。
我对golang很陌生,也许我们可以用Map来做,但由于一直不一样,我不知道怎么做。此外,还有许多与名称一起的字段,我没有将它们粘贴在这里以保持问题的清晰。使用
map[string]interface{}
作为响应数据类型。Data0到任意数量的os Data0类型字段解组映射为键data\u 0、data\u 1、data\u 2
ResponseData map[string]interface{} `json:"response_data"`
如果您的数据作为同一对象出现在每个数据\u 0中。。。数据,然后定义如下所示的结构类型,并使用该类型定义映射
//new data type
type Data struct {
Name string `json:"name"`
}
//add this to your Autogenerated struct
ResponseData map[string]Data `json:"response_data"`
或者简单地加上
ResponseData map[string]struct{
Name string `json:"name"`
} `json:"response_data"`
对那个部分使用映射。你的意思是说我可以在ResponseData之前保持结构不变,并且在其中我可以使用映射吗?举个小例子会很有帮助。是的,您应该将
ResponseData结构{…}
替换为ResponseData映射[string]接口{}
。或者可能是map[string]结构{…}