dongyun3335 2017-02-24 15:19
浏览 53
已采纳

JSON解码未知对象

I'm trying to decode a json response with a struct type. An instance of the object i'm trying to decode looks as follows:

{
  "title": "Some Title",
  "views": 344,
  "profiles": {
      "customField": "somevalue",
      "customField2:" :somevalue"
  }
}

The golang struct is the following:

type Topic struct {
  Title         string   `json:"title"`
  Views         string   `json:"views"`
  Profiles      string   `json:"profiles"`
}

As you can see, the "Profiles" attribute is a string, since the profiles object is unknown, as the fields inside it can be dinamically defined.

I'm trying to decode this with:

json.NewDecoder(response.Body).Decode(result) 

Where result is of type Topic, but isn't working. What type should the "Profiles" attribute be in order to correctly decoding the answer?

Thanks!

  • 写回答

4条回答 默认 最新

  • doulifang5554 2017-02-24 15:33
    关注

    Reading the comment it's clear that profiles value could be of any type, for this reason I suggest you to declare the Profiles type as a map[string]interface{}.
    Topic becomes:

    type Topic struct {
      Title         string   `json:"title"`
      Views         int32   `json:"views"`
      Profiles      map[string]interface{}   `json:"profiles"`
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题