[英]How to get actual value from object of JsonPatchDocument in C#?
我有一個如下所示的有效負載,可通過 webAPI 中的補丁調用進行更新。
[
{
"value": [
{
"Id": "12",
"name": "ABC"
},
{
"Id": "89",
"name": "XYZ"
}
],
"path": "/basepathofemployee",
"op": "replace"
}
]
我的控制器操作方法就像我想在那里獲取 Id & name 的值
public async Task<IActionResult> UpdateData([FromBody] JsonPatchDocument<EmployeeDocument> patchDoc)
{
// here I want to get value of Id (12, 89) & name (ABC, XYZ)
}
我試圖從路徑本身中獲取價值,例如,
var employee = patchDoc.Operations.Where(o => o.path.Equals("/basepathofemployee"));
它給了 IEnumerable ,如果我循環遍歷它,我沒有得到 id 和 name 的實際值。
你能指導我如何獲得 id 和 name 的實際值嗎?
如果它需要補丁文件:
if (patchDoc != null)
{
var model = CreateModel(); //need to create instance
patchDoc.ApplyTo(model, ModelState);
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
else{
// model should have valid properties here
}
return new ObjectResult(model);
}
else
{
return BadRequest(ModelState);
}
動作上也應該有這個裝飾器:
[HttpPatch]
如果可以不使用補丁文檔:
只需創建一個類:
public class Patch{
public List<Data> value {get;set;}
public string path {get;set;}
public string op {get;set;}
}
和另一個數據
public class data{
public int Id {get;set;}
public string name {get;set;}
}
然后將簽名更改為:
public async Task<IActionResult> UpdateData([FromBody] Patch patchDoc)
{
// here I want to get value of Id (12, 89) & name (ABC, XYZ)
// should be available patchDoc.value[0].Id / patchDoc.value[1].Id
}
可能需要:
public async Task<IActionResult> UpdateData([FromBody] List<Patch> patchDoc)
{
// here I want to get value of Id (12, 89) & name (ABC, XYZ)
// should be available patchDoc[0].value[0].Id / patchDoc[0].value[1].Id
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.