gpt4 book ai didi

c# - 如何在发布对象中将 JsonPatchDocument 作为属性传递?

转载 作者:行者123 更新时间:2023-12-04 10:41:58 29 4
gpt4 key购买 nike

想要发布一组对象,其中对象具有 JsonPatchDocument 作为其中的属性,如下面的代码。但是,这是否受支持或为什么会发生错误?

public class Person
{
public string Name { get; set; }
}

public class DummyClass
{
public int PriKey { get; set; }
public JsonPatchDocument<Person> PersonPatchDocument { get; set; }
}

[HttpPost]
public IActionResult Test(IEnumerable<DummyClass> input)
{
return Ok();
}

尝试使用 swagger/curl 发布并获取

{
"errors": {
"[0].PersonPatchDocument": [
"The JSON patch document was malformed and could not be parsed."
]
},
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "8000000d-0007-fd00-b63f-84710c7967bb"
}

尝试以下组合,但均因上述情况而失败:

[
{
"PriKey": 1,
"PersonPatchDocument": {
"ContractResolver": {
"value": "bob",
"path": "/name",
"op": "replace"
}
}
}
]

[
{
"PriKey": 1,
"PersonPatchDocument": {
"value": "bob",
"path": "/name",
"op": "replace"
}
}
]

最佳答案

JsonPatchDocument 的 JSON 表示是对象的集合,而不是单个对象。在您的情况下,只有一个更改对象,但它仍然必须包装为一个集合。第二个示例最接近所需的内容,我已将其包含在此处进行更改:

[
{
"PriKey": 1,
"PersonPatchDocument": [
{
"value": "bob",
"path": "/name",
"op": "replace"
}
]
}
]

关于c# - 如何在发布对象中将 JsonPatchDocument 作为属性传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59886442/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com