JSON 补丁 'replace' 整个字符串列表

JSON Patch 'replace' entire list of strings

我在使用 JSON 补丁执行更新时遇到问题。在这种情况下,我试图替换整个字符串集合 ('Names')。

public class NamesUpdate
{
    public List<string> Names { get; } = new List<string>();
}
public void ReplaceNames([FromBody] JsonPatchDocument<NamesUpdate> namesUpdate)
{
    var newNames = new NamesUpdate();
    namesUpdate.ApplyTo(newNames);
}

请求对象:

[
    {
      "op": "replace",
      "path": "/names/",
      "value": ["Ben", "James"]
    }
]

错误(从 ApplyTo 行抛出):

Microsoft.AspNetCore.JsonPatch.Exceptions.JsonPatchException: The property at path 'names' could not be updated.

该错误非常普遍,我认为请求对象没问题。关于如何替换整个集合的任何想法?

您没有设置访问器。

[HttpPatch]
public IActionResult ReplaceNames([FromBody] JsonPatchDocument<NamesUpdate> namesUpdate)
{
    var newNames = new NamesUpdate();
    namesUpdate.ApplyTo(newNames);            
    return Ok(newNames);
}
public class NamesUpdate
{
   public List<string> Names { get; set; } = new List<string>();
}

结果: