V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
lepig
V2EX  ›  Go 编程语言

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

  •  
  •   lepig · 2019-06-04 09:24:57 +08:00 · 3266 次点击
    这是一个创建于 2032 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 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是什么类型,是不是取决于那边如何定义这个结构体属性的类型?

    6 条回复    2019-06-04 20:41:34 +08:00
    wulin
        1
    wulin  
       2019-06-04 09:31:38 +08:00
    取决于结构体字段类型定义
    mingqing
        2
    mingqing  
       2019-06-04 09:32:23 +08:00
    取决于那边如何定义这个结构体属性的类型。
    lepig
        3
    lepig  
    OP
       2019-06-04 09:33:54 +08:00
    @wulin @mingqing 好的,谢谢老哥
    TypeErrorNone
        4
    TypeErrorNone  
       2019-06-04 13:58:07 +08:00
    go 中解析把数字都划为 float64
    bwangel
        5
    bwangel  
       2019-06-04 17:41:04 +08:00 via Android
    https://blog.golang.org/json-and-go

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

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

    https://www.bwangel.me/2019/05/21/review-json-and-go/
    lepig
        6
    lepig  
    OP
       2019-06-04 20:41:34 +08:00
    @bwangel 感谢分享。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1249 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:29 · PVG 07:29 · LAX 15:29 · JFK 18:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.