菜鸟请教struct作为map的key的Marshal/unMarshal的问题

weixin_38053534 2019-09-20 10:28:16
定义了一个名为Student 的Struct,一个名为score的map,map的key是Student类型,value是int64.
把score里面的struct转成了string然后做marshal成功了,现在的问题是,不知道怎么从这个json再unmarshal回来。
请各位大牛赐教。
...全文
35 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38059994 2019-09-20
  • 打赏
  • 举报
回复
weixin_38060792 2019-09-20
  • 打赏
  • 举报
回复
这样的数据结构不妥吧 没见过json(map)将复合数据作为key的 实际应用场景也不会这么用的
weixin_38087753 2019-09-20
  • 打赏
  • 举报
回复
就是从敝司的应用场景里面抽出来的一个例子。。。。结构大家讨论过了的,现在就是mapper跟reducer之间传递中间结果做这个marshal / unmarshal的时候搞不定。。。。
weixin_38095150 2019-09-20
  • 打赏
  • 举报
回复
数据结构设计不合理 重新规划下吧 不然简单事情复杂化了 go处理动态json没有脚本语言方便 不设计好就是给自己找麻烦 另外unmarshal需要你定义好json化目标的数据结构,即schema,在go里面需要你自己去定义目标struct去解构 比如你想要{a:b:{c:1}} 你需要定义 type a struct { 嵌套... } 使用&a{......}一层层解构
weixin_38103537 2019-09-20
  • 打赏
  • 举报
回复
看代码看到后面被恶心到了…… 你自己看看生产的json是什么格式,直接转回来不久好了么……
weixin_38121667 2019-09-20
  • 打赏
  • 举报
回复
能说具体点怎么转回来吗? 用unmarshal转不回来。。。。
weixin_38132030 2019-09-20
  • 打赏
  • 举报
回复
结构体作为map的key进行json编码解码,最好通过实现encoding.TextMarshaler接口实现
weixin_38139601 2019-09-20
  • 打赏
  • 举报
回复
通过Json倒推啊 何况你这个本来就是转换过的,肯定unmarshal后要重新转换啊。
weixin_38141003 2019-09-20
  • 打赏
  • 举报
回复
你的key看着是个struct 其实是一串字符串
weixin_38146285 2019-09-20
  • 打赏
  • 举报
回复
谢谢您的回复,按照这个思路解决了!

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧