研究了下内置的 encoding/json,以及流行的第三方 JSON 库 jsonitor,还在 github 上搜了搜,基本没找到有这个功能。
别告诉我可以先 Unmarshall 到 map[string]interface{}中再 Marshall,或者直接操作裸[]byte,这根本不是“真正”的解决办法。
研究了下内置的 encoding/json,以及流行的第三方 JSON 库 jsonitor,还在 github 上搜了搜,基本没找到有这个功能。
别告诉我可以先 Unmarshall 到 map[string]interface{}中再 Marshall,或者直接操作裸[]byte,这根本不是“真正”的解决办法。
|
1
|
|
rrfengJul 30, 2020 via Android
2
你告诉我哪种语言可以不 unmarshal 就能加 key 的?
|
|
StarUDreamJul 30, 2020
3
来了来了,他来了
|
|
yemoluoJul 30, 2020
4
真的是老鼠精的洞府
|
|
5
序列化后的数据一般都是反序列化之后再修改吧,哪有能直接修改序列化数据的。
|
|
6
世界上最好的语言 PHP 都没有这个 api
|
|
pengjayJul 30, 2020
7
封装成一个函数不就有 API 了
|
|
8
你想不 Unmarshall 解决问题?
办法有啊! 你手里拿着 byte array,然后通过你多年编程的经验,猜出来具体需要添加的位置是哪个地方,然后把你的 kv 插进这个位置, 你看这样不就好了? |
|
9
|
|
darksword21Jul 30, 2020
10
直接机器码编程
|
|
tcfenixJul 30, 2020
11
想了想还真的可行啊,如果就添加在最外层的话,直接 从<}">的位置前面插就好了
哈哈哈哈哈哈,给 官方库提个 mr 吧 |
|
zzzmjJul 30, 2020
12
黑人问号脸
|
|
VegetableJul 30, 2020
13
真滴秀,JSON 在编程语言里不都是二等公民吗,都不是原生数据对象,当然要现转换才能修改啊
|
|
gowkJul 30, 2020
14
水贴、已 B 、不送
|
|
deplivesJul 30, 2020
15
最近钓鱼贴越来越多了哈
|
|
scnaceJul 30, 2020 via Android
16
sjson 可以干这事,自己不会搜索不要怪社区(还有标准库为啥要提供这种 JSON path ?不符合大道至简啊🙈
|
|
janxinJul 30, 2020
18
楼主🎣技术太差,下一个问题
|
|
woodongwongJul 30, 2020
19
@guonaihong /大拇指
|
|
20
谁说 go 没有,你直接拿到[]byte 的指针,用 unsafe 按着头往里面写不就完事了
|
|
21
大概是指想要 python 字典那种便捷操作吧。
但即使在 python 中严格来说 json 串指的是 json.dumps(dict)后的结果,而不是 dict 。 强类型语言似乎没有办法快捷的给 class 或者 struct 加属性或者字段。 不知道利用反射可不可以,但是利用反射加字段让代码看起来像是起了一个脓包 |
|
tidyouxJul 30, 2020
22
|
|
23
|
|
moka20477Jul 30, 2020
24
你有发帖这时间都已经封装完函数了
|
|
damngoodJul 30, 2020
25
啊,你们说的生态就是这种呀...
难道不管什么功能都要有个外部依赖库来做的吗... 这种东西自己弄一下也不用费什么力气的吧. |
|
yuzo555Jul 30, 2020
28
简单啊,如果 JSON 是标准非空无空白的,直接在倒数第二个字符串位置(“}”之前)插入:
,"key":"value" 就行了。 但真没必要,不差这个解析和转换的内存和时间 |
|
InkStoneJul 30, 2020
29
楼上那么多回复让我怀疑 Java 是一门小众语言
楼主说的不就是 Java JsonObject 那样的专用 JSON API 么 |
|
fengyjJul 30, 2020
32
建议你去用动态脚本语言写,比如 JavaScript
这喷得好奇怪。 |
|
JoooooooooJul 30, 2020
33
建生态的机会来了
|
|
WaldenHorizonJul 30, 2020
35
你不分析怎么知道一坨字符串里面包含什么东西?你怎么就确定它是 map[string]interface{}?
|
|
sonxzjwJul 30, 2020
36
已 block 不送
|
|
ClarkAbeJul 30, 2020 via iPhone
37
??? json 的老爸 js 想操作他都得转实体,要么自己封装要么爱用用不缺你一个
|
|
CharlotteLiJul 30, 2020
38
我咋感觉楼主是来钓解决方案的,和 300 元以内的耳机都是辣鸡一样。
|
|
allenhuJul 30, 2020 via Android
39
话说 map[string]interface{}相当倒胃口
|
|
pythoneeJul 30, 2020
40
撸起袖子干
|
|
onikageJul 30, 2020
41
楼上的能人不少啊, 楼主只是吐槽不方便, 这么多人都知道这问题也不见人提交, 有人提出这问题就在这说风凉话, 还 tm 钓鱼, 自己钓鱼习惯了吧? 还是难得找到个机会要显摆自己一下?
|
|
johnnyNgJul 30, 2020
42
json 在 js 中算一等公民了,也得先 parse 再操作
|
|
43
@onikage #41 是楼主提问方式的问题,明明可以说 "请问一下大家,Golang 中是否存在直接往 JSON 中追加新的 key/value 的 API ?",非得上来喷一句,这样不被喷才怪了
|
|
duanquanyongJul 30, 2020
45
https://github.com/tidwall/sjson 这不是吗?
你上来不问有没有,自己找不到就得出结论说生态差? |
|
wlevenJul 30, 2020
46
用 map 呗 处理完再序列化
|
|
Chenamy2017Jul 30, 2020
47
请教问题就请教问题,别到处扣帽子。没有一个生态是完美的。
|
|
TypeErrorJul 30, 2020 via Android
48
先学会提问
|
|
haosamaxJul 30, 2020
49
这个问题,他是个问题吗?
|
|
51
水平太差 建议转行写 js
|
|
AdrielJul 30, 2020 via iPhone
52
引战帖 告辞
|
|
53
正确的提问姿势
|
|
54
气的这么多人都直接贴了库的网址。。。果然是正确的提问姿势
|
|
55
大概还不太知道啥是 JSON,下面都是合法的 JSON 字符串
- "1" - "\"s\"" - "true" - "1.1" - "[1.1]" - "{\"key\": \"value\"}" |
|
yujiffJul 30, 2020
56
路过。。。
|
|
57
楼主平安 回复者平安 V2EX 平安
|
|
winglight2016Jul 30, 2020
58
几年前刚开始接触 go,我也被这问题难住了,marshal 来 unmarshal 去,现在我用 python/js,已经看不懂 lz 的问题是啥了。。。
|
|
yangbonisJul 30, 2020 via iPhone
59
临时用用的话,jq 不舒服吗
|
|
fancy2020Jul 30, 2020
60
v 站上越水的帖子越能火...
|
|
61
学到了,原来这才是提问的正确姿势,回复里的解决办法真不错
|
|
merin96Jul 30, 2020
62
https://github.com/Vonng/ddia/blob/master/ch4.md#%E7%BC%96%E7%A0%81%E6%95%B0%E6%8D%AE%E7%9A%84%E6%A0%BC%E5%BC%8F
为什么要 marshall/unmarshall,这一节我感觉说得挺清楚的 |
|
tikazyqJul 30, 2020
63
为啥不直接用 struct ?静态语言用动态的方法写,感觉有些反模式
|
|
billleeJul 30, 2020
64
SAX 风格的库就可以不做反序列化,C++ 和 Java 的主流库都是支持的吧
|
|
WilliamYangJul 31, 2020
65
这才是正确的提问方式,下次想问问题的朋友可以参考一下
|
|
66
这样的提问方式确实好,就是容易被 b
|
|
abowloflrfJul 31, 2020 via iPhone
67
甚至觉得楼主是来黑 golang 的
|
|
vippppppJul 31, 2020
68
|
|
JokeFunnyJul 31, 2020
69
这是来搞笑的吧
|
|
jimagesJul 31, 2020
70
学习了正确的提问方法
|
|
CarlgaoJul 31, 2020
72
楼主一边挨着骂一边偷笑,自己搜个锤子,这不就有解决方案了吗
|
|
prenwangJul 31, 2020
74
楼主你好牛
|
|
wdlthJul 31, 2020
75
建议先去把 RFC 4627 了解清楚,JSON 不一定是有 Key 的对象,可能是数组,甚至只是一个 null 或者 false,到时候你怎么插呢?
|
|
BalthildAug 2, 2020 via iPhone
76
提问时老老实实遵守《提问的智慧》:问题看起来很好看然而无人问津
直接抛出一个错误答案:跑出一大堆人用正确回答“教育”自己 |
|
qingsongheAug 3, 2020
77
使用 map[interface{}]interface{}解决问题
|
|
cbasilAug 13, 2020
78
php 都需要 json_decode 将 json 转换成数组或者对象后才能修改数据,改完后再 json_encode 回去
|
|
liuyexingDec 4, 2020
79
|