好厉害的 Go,跟 py 一比,简直了

2016-12-29 23:05:19 +08:00
 only0jac

就冲 golang 可以生成二进制单文件这一点,部署方便,想试试

拿 beego 练个手,用了它的 httplib 模块,其中, request 后有个直接将结果转换成 json 的,原文如下:

解析为 JSON 结构, req.ToJSON(&result) 方法

返回结构直接解析为 JSON 格式,解析到 result 对象中

我!以!为!这是和 py 的 json.loads()一样,心理窃喜,接下来……

我传了个 string ,没数据,传个空接口,没数据。。。。。

看了下源码,是直接调用的 json.Unmarshal(data, v),属于 golang 自带的库,可我一搜……

竟然发现,需要提前定义 json 的结构???而且字段首字母必须大写???不然还得声明???

WTF

beego 的 request 可以返回 string ,像 py 的 requests.get(url).text ,但是我不想这样,我想 json.loads(requests.get(url).text)

我就是想获取个 json 而已,能不能不要这么折腾人?

10649 次点击
所在节点    Go 编程语言
88 条回复
mathgl
2016-12-30 12:03:21 +08:00
@Tyanboot c++现在比较好的显然是 rapidjson
ispinfx
2016-12-30 12:07:48 +08:00
人生苦短 我用 Python
moliliang
2016-12-30 12:10:26 +08:00
golang 大法好,无需 bb ,,,哈哈哈
boneyao
2016-12-30 12:26:47 +08:00
定义一个结构体很麻烦吗?
定义一个不麻烦,但是定义 100 个的时候感觉快崩溃了。
lijiac
2016-12-30 12:28:14 +08:00
乍看标题以为楼主要黑我 python ,正准备撸起袖子大干一场,结果...
zhiyong
2016-12-30 12:54:45 +08:00
看看 github.com/tidwall/gjson 这个库,或许能帮到你!
shyling
2016-12-30 12:55:34 +08:00
我知道楼主喜欢那种 JsonObject.getXX("name").getYY("name")那种 0v0
rrfeng
2016-12-30 12:57:37 +08:00
有这样的 json 库。

但是怎么说呢……
coldwinds
2016-12-30 13:30:28 +08:00
入乡随俗
levn
2016-12-30 13:36:42 +08:00
先在静态语言里实现一个动态语言……然后……
fcfangcc
2016-12-30 13:45:12 +08:00
json.loads(requests.get(url).text) 可以 requests.get(url).json()
woniuge
2016-12-30 13:48:05 +08:00
Immortal
2016-12-30 13:56:34 +08:00
再说一句
不需要定义结构体的用法
map[string]interface{}

还有 golang 的常用 json 库 上面说的 gjosn 还有一个 simplejson 前者性能更高一些
能直接 get json 里的字段
fuyufjh
2016-12-30 14:04:57 +08:00
如果结构已知, dict 毕竟要查找,效率和 struct 不能比的。作为一门可以编译到二进制的强类型语言,当然是 struct

如果结构不定,就要传 map[string]interface{}进去

不带你这样不会用就黑的。。
9
2016-12-30 14:13:39 +08:00
@only0jac lz 可以看看跟你类似的吐槽 https://tanronggui.xyz/t/98585
taowen
2016-12-30 15:43:33 +08:00
可以看一下我写的 jsoniter http://jsoniter.com/java-features.html 解析各种 json 应该要方便很多了
这个是 java 版本的文档, golang 版本的稍后更新
gouchaoer
2016-12-30 16:57:51 +08:00
易语言可以生成二进制呢
qwer1234asdf
2016-12-30 17:00:33 +08:00
最蛋疼的是改数据结构, struct 越改越乱。。。
only0jac
2016-12-30 17:32:09 +08:00
@taowen 404 了
@fuyufjh 谢谢,不是黑
@Immortal 多谢
@woniuge 很方便的工具,谢谢
@zhiyong 这库很好,不过前几楼的同学说 golang 自带的库很不错,我先把官方库库搞明白了,再去用第三方,谢谢
@gamexg 谢谢,受教了
a7a2
2016-12-30 17:34:52 +08:00
写吧 多写点 以后就可以复制粘贴了 那些什么编程语言都用过的人 都是复制粘贴的
程序员不可能同时专注几种语言的 写 java 三年 然后 python 三年 然后 go 三年 这个时候忘掉了 Java 的了。。。

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

https://tanronggui.xyz/t/331121

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

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

© 2021 V2EX