登录
首页 >  Golang >  Go问答

使用对象值作为键,解析json数据

来源:stackoverflow

时间:2024-02-14 17:09:21 232浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《使用对象值作为键,解析json数据》,涉及到,有需要的可以收藏一下

问题内容

大家好, 我有一个类似于下面的 json ...

[
  {
    "Delay": 0.031247,
    "Index": {
      "Currency": "USD",
      "Valoren": "998434",
    },
    "IdentifierType": "Symbol",
    "Identifier": "SPX.INDCBSX",
  },
  {
    "Delay": 0,
    "Index": {
      "Currency": "USD",
      "Valoren": "13190963",
    },
    "IdentifierType": "Symbol",
    "Identifier": "SPDVXT.INDCBSX",
  }
]

我想以这样的方式解组它,以便我应该能够将其存储为 map[string]interface{},其中 key 是“identifier”值的值。例如,如果我写 data["spx.indcbsx"] 那么我应该获得完整的数组元素数据。当然,我可以通过创建类似的结构并迭代它并创建这种类型的映射来解组它,但这是更耗时的操作。


正确答案


在选择自定义字段作为地图的键时,没有什么神奇的方法可以告诉 encoding/json 为您解组此数据。您有多种选择:

  1. 实现json.Unmarshaler接口;请参阅 encoding/json 的文档,例如 this answer
  2. 将数据解组到 []map[string]interface{} 中,然后在单独的循环中将其重新调整为您想要的格式。
  3. 使用类似 JSON-to-Go 的内容来创建表示数据的结构,然后执行 (2) 会简单得多,但这仅适用于僵化的 JSON 数据结构。

This post 也很有帮助。 And this one

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>