yylxbiubiu
V2EX  ›  问与答

gin 框架接收、解析数据的问题

  •  
  •   yylxbiubiu · Feb 1, 2023 · 1207 views
    This topic created in 1216 days ago, the information mentioned may be changed or developed.
    • gin 框架写了个登录接口如下:
    func (u *UserApi) Login(c *gin.Context){
    	xxxx
    }
    
    
    • 接口 body 里有三个参数,如果传入 3 个三个参数会报错,并且有一个参数字符长度超过 23 也会报错

    • 长度超过 23 报错的打印的 c 的内容如下:

    "json: unsupported type: func() (io.ReadCloser, error)"
    
    • 所以想问问有没有遇到过类似的问题,有朋友试了下他们的是正常的,接手的别人的代码所以想问下是否有加限制,如果加了可能会是在哪里加的?
    4 replies    2023-02-01 22:20:51 +08:00
    stevenshuang
        1
    stevenshuang  
       Feb 1, 2023 via iPhone
    这个得看你的 body 是什么样子了,看报错,里面出现了不支持序列化的类型。你可能需要对这个类型自己实现 Json 的接口。
    arvin01
        2
    arvin01  
       Feb 1, 2023
    什么信息都没给出,不好分析。

    看到涉及 json ,建议把 json 相关的类,body 数据示例,调用的哪个解析函数列一下,或者直接帖完整的代码(移除敏感的部分)
    GeruzoniAnsasu
        3
    GeruzoniAnsasu  
       Feb 1, 2023
    gin 使用 Context.ShouldBindJson/BindJson 这样的函数自动反序列化请求中的 json 参数。你可以查看被 bound to 的对象的结构,里面的 struct tag 会指示如何从 json 反序列化
    yylxbiubiu
        4
    yylxbiubiu  
    OP
       Feb 1, 2023 via iPhone
    @stevenshuang 就是一个 json 类型 三个参数的值都是字符串类型 {“a”:“a”,“b”:“b”,“c”:“c”} 类似这样
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3027 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 15:00 · PVG 23:00 · LAX 08:00 · JFK 11:00
    ♥ Do have faith in what you're doing.