请教下 golang 在解析 json 串的时候,里面的值类型必须都是字符串类型吗

2019-06-04 09:24:57 +08:00
 lepig

使用 php 调用一个 golang 的接口 Content-Type 设置为了 application/json,然后我使用 php 发送的 post 数据如下

{
    "name":"lepig",
    "pid":5,
    "address":"BeiJing"
}

关键在于上面的 pid,当我传数字类型的 5 就报json 解析失败,修改为字符类型的 5 就正常。

// 正常
{
    "name":"lepig",
    "pid":"5",
    "address":"BeiJing"
}

所以我想知道的是,golang 在解析 json 的时候这个pid是什么类型,是不是取决于那边如何定义这个结构体属性的类型?

3110 次点击
所在节点    Go 编程语言
6 条回复
wulin
2019-06-04 09:31:38 +08:00
取决于结构体字段类型定义
mingqing
2019-06-04 09:32:23 +08:00
取决于那边如何定义这个结构体属性的类型。
lepig
2019-06-04 09:33:54 +08:00
@wulin @mingqing 好的,谢谢老哥
TypeErrorNone
2019-06-04 13:58:07 +08:00
go 中解析把数字都划为 float64
bwangel
2019-06-04 17:41:04 +08:00
https://blog.golang.org/json-and-go

Go blog 的文章有写,解析不知道结构的 json 的时候,可以使用 map

如果觉得看英文文章比较麻烦,可以参考我的翻译😃

https://www.bwangel.me/2019/05/21/review-json-and-go/
lepig
2019-06-04 20:41:34 +08:00
@bwangel 感谢分享。

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

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

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

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

© 2021 V2EX