You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go AWS Lambda处理POST嵌套JSON报invalid use of string struct tag错误

问题根因

报错直接指向JSON结构体标签使用错误,共有三处明显的配置问题:

  1. EventParamsType中Name字段的json标签错误添加了,string选项。Go标准库encoding/json的,string标签仅适用于数值、布尔类型的字段,作用是从JSON的字符串格式中解析对应类型的值。如果字段本身就是string类型还加了,string,会要求JSON中对应的字段值是带转义引号的字符串嵌套格式(比如"name":"\"peter\""),你传入的普通字符串"peter"自然会解析失败。
  2. RequestBodyType和ResponseBodyType的Event字段标签写错了,你写的是string:"event,string,omitempty",json序列化/反序列化只会识别json:开头的标签,这也导致你返回的JSON字段名是大写的Event,不符合预期的小写event。
  3. RequestBodyType和ResponseBodyType的EventParams字段没有配置json标签,你请求中传递的键是小驼峰eventParams,和结构体字段的大驼峰命名不匹配,会导致参数解析失败。

修复方案

直接修改三处结构体的标签配置即可:

// RequestBodyType 是自定义结构体,用于处理客户端传入的JSON请求
type RequestBodyType struct {
    Event       string          `json:"event,omitempty"`
    EventParams EventParamsType `json:"eventParams,omitempty"`
}

// ResponseBodyType 是自定义结构体,用于构造返回给客户端的响应
type ResponseBodyType struct {
    Event       string          `json:"event,omitempty"`
    EventParams EventParamsType `json:"eventParams,omitempty"`
}

// 修复后的EventParamsType
type EventParamsType struct {
    Name string `json:"name,omitempty"`
    Age  int64  `json:"age,omitempty"`
}

修改完成后再发送带嵌套参数的请求即可正常解析,返回结果也会符合预期的字段命名格式。


内容的提问来源于stack exchange,提问作者Valor_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 20:36:10