所以我尝试将 json 解析为一些结构,并且可以正常使用以下内容:
type train struct {
ID string `json:"id"`
Price float64 `json:"price,string"`
Distance float64 `json:"Distance,string"`
}
type Station struct {
ID int64 `json:"id,string"`
arrTrain []train`json:"arr"`
depTrain []train`json:"dep"`
}
然而,问题是我希望能够轻松地使用它们的 ID 引用 arrTrain 和 depTrain 中的项目,所以我认为我需要更改 Station 结构,以将 arrTrain 和 depTrain 作为 ID 为的 map key 。解析 json 时可以这样做吗?还是必须进行“后处理”?
编辑: 正如评论之一所述,不幸的是我的 json 采用以下形式:
{
"id":1,
"arr": [
{"id":"one","price":"$10.1","Distance":"100km"},
{...}
],
"dep":[
{"id":"one","price":"$10.1","Distance":"100km"},
{...}
]
}
换句话说,ID 不在 json 对象的外部,而 arrTrain 是列表。
最佳答案
是的,您可以像这样定义电台:
type Station struct {
ID int64 `json:"id,string"`
arrTrain map[string]train `json:"arr"`
depTrain map[string]train `json:"dep"`
}
你的 JSON 应该像这样
{
"id":1,
"arr": {
"one":{"id":"one","price":"$10.1","Distance":"100km"},
"two":...
},
"dep":{
"one":{"id":"one","price":"$10.1","Distance":"100km"},
"two":...
}
}
关于json - Golang 中 json 的结构图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820620/