duanli12176 2014-04-14 15:02
浏览 157
已采纳

Golang-解析嵌套的JSON

I'm using the go-worker to process resque jobs. A job has a payload which has a nested JSON structure like this:

[{
  "key-a":"val-a",
  "key-b":"val-b",
  "files":[{
    "key-a": [
      {"a":"b","c": "d"},
      {"e":"f","g": "h"}
    ],
    "key-b": [
      {"a":"b","c": "d"},
      {"e":"f","g": "h"}
    ]
  }]
}]

Now go-worker gives me args ...interface{} which represents that JSON payload, not the actual JSON text. Is there an idiomatic way to convert that(args) to the correct types (could use another package to do this.) Using type assertions manually seems a bit tedious for such a thing.

  • 写回答

1条回答 默认 最新

  • dto5637 2014-04-14 15:40
    关注

    If it's really giving you the actual go objects (i.e. a bunch of map[string]interface{} and not the json string itself) then there probably isn't much you can do besides a bunch of type assertions.

    You could re-marshall it to json then parse it again into the correct structs, but that's a bit of a hack (and I have no idea if it would be performant or not).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题