json - Golang 中 json 的结构图

标签 json go

所以我尝试将 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/

相关文章:

php - 如何从 php 文件中获取 json 数据到 Intel XDK

javascript - 从 JSON 获取数据并使用 Angular 对其进行过滤

javascript - 使用Php、json、JS和JSON获取json数组创建产品索引问题

android - Android中如何同时使用HTTPS和HTTP解析JSON数据?

mongodb - 通过id从集合中检索文档

go - 包的类型不能用作 vendored 包的类型

go - 如何重置或丢弃缓冲数据

objective-c - 解析 JSON 字符串和数组时出现 NSJSONSerialization 问题?

web - Go 中的交互式网页

github - 为 Github 构建 Golang 发布二进制文件