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

Swagger中PATCH请求的Body为何导致JsonPatchDocument参数为空?

修复方案

1. 调整请求Body结构

JSON Patch 规范要求请求体必须为操作数组,单个操作也需要放在数组内,你当前提交的是单个JSON对象,序列化器无法识别为JsonPatchDocument结构,导致操作集合为空。
正确请求体示例:

[
  {
    "op": "replace",
    "path": "/site_name",
    "value": "FOOO"
  }
]

2. 配置Newtonsoft.Json支持

ASP.NET Core 默认的System.Text.Json序列化器原生不支持JsonPatchDocument,需要手动配置Newtonsoft.Json组件:

  • 安装NuGet包 Microsoft.AspNetCore.Mvc.NewtonsoftJson
  • 在Program.cs中添加如下配置:
builder.Services.AddControllers()
    .AddNewtonsoftJson();

3. 验证路径匹配规则

你尝试的带前导斜杠的路径/site_name是符合要求的,不需要调整,只需要保证路径和Site类序列化后的属性名一致即可。

配置完成后即可正常读取sitePatch内的操作,调用sitePatch.ApplyTo()方法即可完成目标对象的字段更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:06:03