Golang 的生态实在太差了!难道就不存在一个 API,可以直接往 JSON 中添追加新的 key/value?

2020-07-30 09:23:52 +08:00
 einsdisp

研究了下内置的 encoding/json,以及流行的第三方 JSON 库 jsonitor,还在 github 上搜了搜,基本没找到有这个功能。

别告诉我可以先 Unmarshall 到 map[string]interface{}中再 Marshall,或者直接操作裸[]byte,这根本不是“真正”的解决办法。

13310 次点击
所在节点    Go 编程语言
79 条回复
B1ankCat
2020-07-30 09:27:41 +08:00
你应该想到这是个机会,你把这个功能封装好提个 pr 给官方库
rrfeng
2020-07-30 09:29:35 +08:00
你告诉我哪种语言可以不 unmarshal 就能加 key 的?
StarUDream
2020-07-30 09:31:01 +08:00
来了来了,他来了
GTim
2020-07-30 09:31:15 +08:00
真的是老鼠精的洞府
nigelvon
2020-07-30 09:37:53 +08:00
序列化后的数据一般都是反序列化之后再修改吧,哪有能直接修改序列化数据的。
1069401249
2020-07-30 09:42:12 +08:00
世界上最好的语言 PHP 都没有这个 api
pengjay
2020-07-30 09:43:25 +08:00
封装成一个函数不就有 API 了
tcfenix
2020-07-30 09:43:52 +08:00
你想不 Unmarshall 解决问题?

办法有啊!
你手里拿着 byte array,然后通过你多年编程的经验,猜出来具体需要添加的位置是哪个地方,然后把你的 kv 插进这个位置,

你看这样不就好了?
guonaihong
2020-07-30 09:44:29 +08:00
darksword21
2020-07-30 09:45:18 +08:00
直接机器码编程
tcfenix
2020-07-30 09:45:41 +08:00
想了想还真的可行啊,如果就添加在最外层的话,直接 从<}">的位置前面插就好了

哈哈哈哈哈哈,给 官方库提个 mr 吧
zzzmj
2020-07-30 09:47:35 +08:00
黑人问号脸
Vegetable
2020-07-30 09:48:05 +08:00
真滴秀,JSON 在编程语言里不都是二等公民吗,都不是原生数据对象,当然要现转换才能修改啊
gowk
2020-07-30 09:48:46 +08:00
水贴、已 B 、不送
deplives
2020-07-30 09:48:49 +08:00
最近钓鱼贴越来越多了哈
scnace
2020-07-30 09:51:05 +08:00
sjson 可以干这事,自己不会搜索不要怪社区(还有标准库为啥要提供这种 JSON path ?不符合大道至简啊🙈
5yyy
2020-07-30 09:56:11 +08:00
@zzzmj 地铁,手机,老头
janxin
2020-07-30 09:59:36 +08:00
楼主🎣技术太差,下一个问题
woodongwong
2020-07-30 10:10:15 +08:00
@guonaihong /大拇指
lxml
2020-07-30 10:23:12 +08:00
谁说 go 没有,你直接拿到[]byte 的指针,用 unsafe 按着头往里面写不就完事了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX