":{"message":"invalid request body: json: cannot unmarshal array into Go struct ...

2026年07月10日 16:05 21.39 秒 success

错误信息

HTTP 400: {"error":{"message":"invalid request body: json: cannot unmarshal array into Go struct field ***.input of type services.HappyHorse11T2VInput","type":"dmxapi_api_error","param":"","code":"dmxapi_invalid_request"}}

AI 解决方案

🔍 报错分析

1. 🌐 错误翻译


原文:invalid request body: json: cannot unmarshal array into Go struct field ***.input of type services.HappyHorse11T2VInput
译文:无效的请求体:无法将数组反序列化为Go结构体字段***.input(类型为services.HappyHorse11T2VInput)

2. 🎯 原因分析


该错误是由于请求体中的JSON数据与后端预期的Go结构体格式不匹配导致的,具体原因为:
  • 请求发送的JSON数据是数组类型(如[{...},{...}]

  • 但后端接口定义的结构体字段.input(类型services.HappyHorse11T2VInput)期望接收单个对象类型的JSON

  • 框架尝试将数组反序列化到单个结构体时,因类型不兼容触发错误
  • 3. 💡 解决方案


    将请求体的JSON从
    数组格式改为与后端结构体匹配的单个对象格式。以下是请求体的正确格式示例:
    {
      "input": {
        // 此处填写services.HappyHorse11T2VInput结构体定义的具体字段及值
        "requiredField1": "示例值1",
        "requiredField2": 123
      }
    }
    

    如果确实需要传递数组数据,需确认后端是否支持接收数组类型的结构体(如将结构体字段定义为切片类型),并按后端实际定义调整请求格式。

    4. 🛡️ 预防措施


  • 请求前校验JSON格式:使用JSON在线校验工具(如JSON Validator)或IDE插件(如JSON Tool)验证请求体是否符合接口文档定义的结构,避免因格式错误触发反序列化失败。

  • 结合接口文档确认类型*:开发前严格对照接口文档中input字段的类型定义(单个对象或数组),确保请求数据类型与定义完全一致,杜绝类型不匹配问题。