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

如何通过CURL请求批量更新多个JSON字段?遇400错误求解决

解决CURL PUT请求批量更新JSON字段返回400错误的问题

你遇到的400错误本质是请求的JSON格式不符合规范,API无法正确解析请求体。下面先分析你试过的几种写法的问题,再给出正确的实现方式:

错误写法的问题分析

  • 第一种写法:直接拼接两个独立的JSON对象,没有任何容器包裹,这不是有效的JSON结构,API完全无法识别。
  • 第二种写法:用逗号分隔两个对象,但没有用数组[]包裹,同样不符合JSON语法规则。
  • 第三种写法:虽然用了数组包裹,但两个对象之间缺少逗号分隔,属于JSON语法错误。

正确的实现方式

首先确认你的API是否支持数组格式的批量更新请求体(从你尝试的写法来看,大概率是支持的),以下是修正后的合法CURL命令:

curl -X PUT \
  http://192.168.1.256:123/api/accessories/123456789 \
  -H 'accept: */*' \
  -H "Authorization: Bearer $token" \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "characteristicType": "Saturation",
      "value": "30"
    },
    {
      "characteristicType": "On",
      "value": "1"
    }
  ]'

注意事项:

  1. JSON数组内的每个对象之间必须用逗号分隔,这是你之前第三种写法遗漏的关键。
  2. 如果你的$token变量需要在shell中正常解析,要把Authorization头的单引号改成双引号(单引号会阻止shell解析变量)。
  3. 如果执行后仍然返回400,建议查看API的官方文档,确认批量更新的请求体格式是否有特殊要求(比如是否需要将多个字段包裹在一个特定的顶层对象中,而非直接用数组)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:09:26