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

2020 年 7 月 30 日
 einsdisp

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

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

14361 次点击
所在节点    Go 编程语言
79 条回复
qW7bo2FbzbC0
2020 年 7 月 30 日
大概是指想要 python 字典那种便捷操作吧。

但即使在 python 中严格来说 json 串指的是 json.dumps(dict)后的结果,而不是 dict 。

强类型语言似乎没有办法快捷的给 class 或者 struct 加属性或者字段。

不知道利用反射可不可以,但是利用反射加字段让代码看起来像是起了一个脓包
tidyoux
2020 年 7 月 30 日
reus
2020 年 7 月 30 日
moka20477
2020 年 7 月 30 日
你有发帖这时间都已经封装完函数了
damngood
2020 年 7 月 30 日
啊,你们说的生态就是这种呀...
难道不管什么功能都要有个外部依赖库来做的吗...
这种东西自己弄一下也不用费什么力气的吧.
hronro
2020 年 7 月 30 日
@rrfeng #2 JavaScript
rrfeng
2020 年 7 月 30 日
@hronro 仔细想想?
yuzo555
2020 年 7 月 30 日
简单啊,如果 JSON 是标准非空无空白的,直接在倒数第二个字符串位置(“}”之前)插入:
,"key":"value"
就行了。

但真没必要,不差这个解析和转换的内存和时间
InkStone
2020 年 7 月 30 日
楼上那么多回复让我怀疑 Java 是一门小众语言

楼主说的不就是 Java JsonObject 那样的专用 JSON API 么
wysnylc
2020 年 7 月 30 日
@InkStone #29 无论是什么语言,curd Json 都得反序列化.这贴主的要求是不能反序列化直接写字符串
sadfQED2
2020 年 7 月 30 日
@InkStone java 也得先把字符串反序列化成 jsonObject 呀
fengyj
2020 年 7 月 30 日
建议你去用动态脚本语言写,比如 JavaScript
这喷得好奇怪。
Jooooooooo
2020 年 7 月 30 日
建生态的机会来了
szkoda
2020 年 7 月 30 日
@reus #23 + 1
WaldenHorizon
2020 年 7 月 30 日
你不分析怎么知道一坨字符串里面包含什么东西?你怎么就确定它是 map[string]interface{}?
sonxzjw
2020 年 7 月 30 日
已 block 不送
ClarkAbe
2020 年 7 月 30 日
??? json 的老爸 js 想操作他都得转实体,要么自己封装要么爱用用不缺你一个
CharlotteLi
2020 年 7 月 30 日
我咋感觉楼主是来钓解决方案的,和 300 元以内的耳机都是辣鸡一样。
allenhu
2020 年 7 月 30 日
话说 map[string]interface{}相当倒胃口
pythonee
2020 年 7 月 30 日
撸起袖子干

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

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

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

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

© 2021 V2EX