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 条回复
qW7bo2FbzbC0
2020-07-30 10:24:38 +08:00
大概是指想要 python 字典那种便捷操作吧。

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

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

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

但真没必要,不差这个解析和转换的内存和时间
InkStone
2020-07-30 11:44:26 +08:00
楼上那么多回复让我怀疑 Java 是一门小众语言

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

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

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

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

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

© 2021 V2EX