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

2020 年 7 月 30 日
 einsdisp

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

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

14341 次点击
所在节点    Go 编程语言
79 条回复
B1ankCat
2020 年 7 月 30 日
你应该想到这是个机会,你把这个功能封装好提个 pr 给官方库
rrfeng
2020 年 7 月 30 日
你告诉我哪种语言可以不 unmarshal 就能加 key 的?
StarUDream
2020 年 7 月 30 日
来了来了,他来了
yemoluo
2020 年 7 月 30 日
真的是老鼠精的洞府
nigelvon
2020 年 7 月 30 日
序列化后的数据一般都是反序列化之后再修改吧,哪有能直接修改序列化数据的。
1069401249
2020 年 7 月 30 日
世界上最好的语言 PHP 都没有这个 api
pengjay
2020 年 7 月 30 日
封装成一个函数不就有 API 了
tcfenix
2020 年 7 月 30 日
你想不 Unmarshall 解决问题?

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

你看这样不就好了?
guonaihong
2020 年 7 月 30 日
darksword21
2020 年 7 月 30 日
直接机器码编程
tcfenix
2020 年 7 月 30 日
想了想还真的可行啊,如果就添加在最外层的话,直接 从<}">的位置前面插就好了

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

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

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

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

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

© 2021 V2EX