社区
其他技术讨论专区
帖子详情
菜鸟请教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
打赏
收藏
菜鸟请教struct作为map的key的Marshal/unMarshal的问题
定义了一个名为Student 的Struct,一个名为score的map,map的key是Student类型,value是int64. 把score里面的struct转成了string然后做marshal成功了,现在的问题是,不知道怎么从这个json再unmarshal回来。 请各位大牛赐教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
谢谢您的回复,按照这个思路解决了!
ProtoBuf 入门教程
/ 指定protobuf的版本,proto3是最新的语法版本// 定义数据结构,message 你可以想象成java的class,c语言中的
struct
// 定义一个string类型的字段,字段名字为data, 序号为1// 定义一个int32类型的字段,字段名字为...
Go The Way 之 Json与对象的相互转换
json.
Mar
sha
l(data) 1、布尔值转化后还是布尔类型 2、浮点数和整型都会转换为JSON里面的常规数字 3、字符串将以UTF-8 编码转化为Unicode字符集的字符串,特殊字符也会转 4、数组和切片会转化为Json里面的数组,但[]...
Golang 新手经常踩的坑
不能使用简短声明来设置字段的值
struct
的变量字段不能使用 := 来赋值以使用预定义的变量来避免解决: // 错误示例 type info
struct
{ result int } func work() (int, error) { return 3, nil } func main() { ...
《Go语言从入门到进阶实战》学习笔记:第六章 结构体
type 类型名
struct
{ 字段1 字段1类型 字段2 字段2类型 ... } 6.2实例化结构体--为结构体分配内存并初始化 1、基本的实例化形式 var ins T T为结构体类型,ins为结构体的实例。 2、创建指针类型的结构体 ins:=...
【教程】快速入门golang
Go语言是一种由Google开发的静态类型编程语言,旨在解决C++编译慢、Java内存占用高、Python并发性能差等
问题
。其核心特性包括简化语法、静态链接、轻量级并发模型(Goroutine和Channel)以及高效的依赖管理。Go源文件...
其他技术讨论专区
476
社区成员
790,963
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章