ObjectAdapter 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义可以对 JSON 修补程序文档执行的操作。
public ref class ObjectAdapter : Microsoft::AspNetCore::JsonPatch::Adapters::IObjectAdapter
public ref class ObjectAdapter : Microsoft::AspNetCore::JsonPatch::Adapters::IObjectAdapterWithTest
public class ObjectAdapter : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter
public class ObjectAdapter : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapterWithTest
type ObjectAdapter = class
interface IObjectAdapter
type ObjectAdapter = class
interface IObjectAdapterWithTest
interface IObjectAdapter
Public Class ObjectAdapter
Implements IObjectAdapter
Public Class ObjectAdapter
Implements IObjectAdapterWithTest
- 继承
-
ObjectAdapter
- 实现
构造函数
ObjectAdapter(IContractResolver, Action<JsonPatchError>, IAdapterFactory) |
初始化 ObjectAdapter 的新实例。 |
ObjectAdapter(IContractResolver, Action<JsonPatchError>) |
初始化 ObjectAdapter 的新实例。 |
属性
AdapterFactory |
获取或设置 IAdapterFactory |
ContractResolver |
获取或设置 Newtonsoft.Json.Serialization.IContractResolver。 |
LogErrorAction |
记录 JsonPatchError的操作。 |
方法
Add(Operation, Object) |
“添加”操作执行以下函数之一,具体取决于目标位置引用的内容: o 如果目标位置指定数组索引,则会在指定索引处插入新值。 o 如果目标位置指定尚不存在的对象成员,则会向对象添加新成员。 o 如果目标位置指定的对象成员确实存在,则替换该成员的值。 操作对象必须包含一个“value”成员,其内容指定要添加的值。 例如: { “op”: “add”, “path”: “/a/b/c”, “value”: [ “foo”, “bar” ] } 应用操作时,目标位置必须引用以下位置之一: o 目标文档的根 - 其中指定值将成为目标文档的整个内容。 o 要添加到现有对象的成员 - 其中提供的值将添加到指定位置的该对象。 如果该成员已存在,则它将被替换为指定的值。 o 要添加到现有数组的元素 - 其中提供的值将添加到指定位置的数组中。 指定索引处或高于指定索引的任何元素都向右移动一个位置。 指定的索引不得大于数组中的元素数。 如果使用“-”字符为数组的末尾编制索引, (请参阅 [RFC6901]) ,这会导致将值追加到数组中。 由于此操作旨在添加到现有对象和数组,因此其目标位置通常不存在。 尽管将因此调用指针的错误处理算法,但此规范定义了“添加”指针的错误处理行为,以忽略该错误并添加指定的值。 但是,对象本身或包含它的数组确实需要存在,并且对于这种情况,它仍然是一个错误。 例如,从本文档开始,目标位置为“/a/b”的“add”: { “a”: { “foo”: 1 } } 不是错误,因为“a”存在,“b”将添加到其值。 这是本文档中的错误: { “q”: { “bar”: 2 } } 因为“a”不存在。 |
Copy(Operation, Object) |
“复制”操作将指定位置的值复制到目标位置。 操作对象必须包含一个“from”成员,该成员是一个字符串,其中包含一个 JSON Pointer 值,该值引用要从其复制值的目标文档中的位置。 必须存在“发件人”位置才能使操作成功。 例如: { “op”: “copy”, “from”: “/a/b/c”, “path”: “/a/b/e” } 此操作在功能上与使用“发件人”成员中指定的值的目标位置的“添加”操作相同。 注意:尽管它在功能上是相同的,但出于性能原因,我们不会使用 中指定的值调用 add, (多次检查相同的要求) 。 |
Move(Operation, Object) |
“移动”操作将删除指定位置的值,并将其添加到目标位置。 操作对象必须包含一个“from”成员,该成员是包含 JSON 指针值的字符串,其中的指针值引用目标文档中要从中移动值的位置。 必须存在“发件人”位置才能使操作成功。 例如: { “op”: “move”, “from”: “/a/b/c”, “path”: “/a/b/d” } 此操作在功能上与“从”位置上的“删除”操作相同,紧接着在目标位置执行“添加”操作,其值刚刚删除。 “发件人”位置不得为“路径”位置的正确前缀;即不能将某个位置移动到其子位置之一。 |
Remove(Operation, Object) |
“删除”操作将删除目标位置的值。 必须存在目标位置才能使操作成功。 例如: { “op”: “remove”, “path”: “/a/b/c” } 如果从数组中删除元素,则指定索引上方的任何元素都向左移动一个位置。 |
Replace(Operation, Object) |
“替换”操作将目标位置的值替换为新值。 操作对象必须包含一个“value”成员,其内容指定替换值。 必须存在目标位置才能使操作成功。 例如: { “op”: “replace”, “path”: “/a/b/c”, “value”: 42 } 此操作在功能上与值的“删除”操作相同,紧接着在具有替换值的同一位置执行“添加”操作。 注意:尽管它在功能上是相同的,但出于性能原因,我们不会调用 remove + add, (多次检查相同的要求) 。 |
Test(Operation, Object) |
定义可以对 JSON 修补程序文档执行的操作。 |