Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新数组对象的jsonpatch路径_C#_Arrays_Json - Fatal编程技术网

C# 更新数组对象的jsonpatch路径

C# 更新数组对象的jsonpatch路径,c#,arrays,json,C#,Arrays,Json,使用json修补程序和dotnetcore Microsoft.AspNetCore.JsonPatch更新阵列时遇到问题 其思想是创建一个操作来替换现有数组的内容,该数组在后端是一个对象列表。我已经读到,您只能使用指针来替换数组内容。这不是最优的,因为数组可能没有正确排序。因此,我尝试替换整个数组的内容,但在应用替换时出现错误: Microsoft.AspNetCore.JsonPatch.Exceptions.JsonPatchException:值“”对于目标位置无效 这将是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
                    }
            };
            }
        }