【发布时间】:2017-08-17 23:21:28
【问题描述】:
我正在尝试找出修补对象集合的最佳方法。我正在尝试更改许多对象的排序顺序,并且认为 jsonpatch 可能是正确的方法。我的对象看起来像:
[
{
"ID": "100",
"FirstName": "John",
"LastName": "Smith",
"Email": "jsmith@test.com",
"SortOrder": 1
},
{
"ID": "125",
"FirstName": "John",
"LastName": "Doe",
"Email": "jdoe@test.com",
"SortOrder": 3
},
{
"ID": "50",
"FirstName": "james",
"LastName": "johnson",
"Email": "jjohnson@test.com",
"SortOrder": 2
},
]
我创建了一个端点,它允许补丁请求使用 jsonpatch 请求更新集合中的多个对象,如下所示:
[
{
"op": "replace",
"path": "/1/SortOrder",
"value": 2
},
{
"op": "replace",
"path": "/0/SortOrder",
"value": 1
},
{
"op": "replace",
"path": "/2/SortOrder",
"value": 3
}
]
我想要做的是使用 jsonpatch 路径中的 ID 属性。我当前的对象结构可能吗?它看起来像:
[
{
"op": "replace",
"path": "/125/SortOrder",
"value": 2
},
{
"op": "replace",
"path": "/100/SortOrder",
"value": 1
},
{
"op": "replace",
"path": "/50/SortOrder",
"value": 3
}
]
我需要做什么才能发出这样的补丁请求?
【问题讨论】:
-
我认为做我所要求的唯一方法是使用字典而不是数组。我现在遇到的问题是我的键值是一个 guid,而且 .NET 中的 jsonpatch 实现似乎不是 guid 键的粉丝。
-
如果这有帮助 -> 我在请求 URL 中传递我的对象的 ID,然后对从该 ID 检索到的对象应用 PATCH。
标签: c# json asp.net-web-api json-patch