C# 更新数组对象的jsonpatch路径
使用json修补程序和dotnetcore Microsoft.AspNetCore.JsonPatch更新阵列时遇到问题 其思想是创建一个操作来替换现有数组的内容,该数组在后端是一个对象列表。我已经读到,您只能使用指针来替换数组内容。这不是最优的,因为数组可能没有正确排序。因此,我尝试替换整个数组的内容,但在应用替换时出现错误: Microsoft.AspNetCore.JsonPatch.Exceptions.JsonPatchException:值“”对于目标位置无效 这将是json补丁的一个示例体:C# 更新数组对象的jsonpatch路径,c#,arrays,json,C#,Arrays,Json,使用json修补程序和dotnetcore Microsoft.AspNetCore.JsonPatch更新阵列时遇到问题 其思想是创建一个操作来替换现有数组的内容,该数组在后端是一个对象列表。我已经读到,您只能使用指针来替换数组内容。这不是最优的,因为数组可能没有正确排序。因此,我尝试替换整个数组的内容,但在应用替换时出现错误: Microsoft.AspNetCore.JsonPatch.Exceptions.JsonPatchException:值“”对于目标位置无效 这将是json补丁的
[{
"op": "replace",
"path": "/users",
"value":[
{
"name" : "john doe",
"age" : 35
},
{
"name" : "mary jane",
"age" : 26
}
]
}
]
关于如何使用json补丁创建一个主体来替换数组,你有什么想法吗
致以最良好的祝愿我正在处理同一问题。不允许直接使用
Repalce
list,因此我的解决方案定义为Users
对象,该对象具有list
[HttpPatch]
公共IActionResult JsonPatchForUsers([FromBody]JsonPatchDocument patchDoc)
{
var users=新用户();
patchDoc.ApplyTo(用户);
返回新的ObjectResult(用户);
}
公共类用户
{
公共字符串名称{get;set;}
公共整数{get;set;}
}
公共类用户
{
公共列表用户{get;set;}
公共用户()
{
用户=新列表()
{
新用户
{
Name=“迈克尔”,
年龄=10
},
新用户
{
Name=“杰克”,
年龄=11
}
};
}
}
它对我有效。
我正在研究同一个问题。不允许直接使用
Repalce
list,因此我的解决方案定义为Users
对象,该对象具有list
[HttpPatch]
公共IActionResult JsonPatchForUsers([FromBody]JsonPatchDocument patchDoc)
{
var users=新用户();
patchDoc.ApplyTo(用户);
返回新的ObjectResult(用户);
}
公共类用户
{
公共字符串名称{get;set;}
公共整数{get;set;}
}
公共类用户
{
公共列表用户{get;set;}
公共用户()
{
用户=新列表()
{
新用户
{
Name=“迈克尔”,
年龄=10
},
新用户
{
Name=“杰克”,
年龄=11
}
};
}
}
它对我有效。
嗨,@Rui,如果答案解决了你的问题,请标记它以帮助更多的人。如果没有,我们或许能够继续探索解决方案。谢谢你的时间和努力。嗨@Michelewang,这确实很有帮助。非常感谢。嗨,@Rui,如果答案解决了你的问题,请标记它以帮助更多的人。如果没有,我们或许能够继续探索解决方案。谢谢你的时间和努力。嗨@Michelewang,这确实很有帮助。非常感谢。非常感谢。这是正确的,它的工作。我发现了一个解析错误,该错误与正在掩盖错误的修补程序无关。@Rui-Vaz非常高兴它能帮上忙谢谢你。这是正确的,它的工作。我发现了一个解析错误,该错误与正在掩盖错误的修补程序无关。@Rui-Vaz非常高兴它能帮上忙D
[HttpPatch]
public IActionResult JsonPatchForUsers([FromBody] JsonPatchDocument patchDoc)
{
var users = new Users();
patchDoc.ApplyTo(users);
return new ObjectResult(users);
}
public class User
{
public string Name { get; set; }
public int age { get; set; }
}
public class Users
{
public List<User> users { get; set; }
public Users()
{
users = new List<User>()
{
new User
{
Name = "michael",
age = 10
},
new User
{
Name = "Jack",
age = 11
}
};
}
}