IJSValueReader
新架构
类型:接口
JSON 类似流的只进读取器。它用于读取原生模块和 Microsoft.ReactNative 库之间发送的数据。
JSON 类似流是满足 JSON 规范的数据结构。数据结构可能包含带有名称-值对的对象和项目数组。属性值或数组项目可以是 Null
、Object
、Array
、String
、Boolean
或 Number
类型。IJSValueReader
将 Number
类型视为 Int64
或 Double
。参见 JSValueType
。
当 IJSValueReader
读取数据时,它必须遍历整个树,不能跳过任何项目。例如,如果当前值类型是 Object
,则必须调用 GetNextObjectProperty
来开始读取当前对象的属性;如果当前类型是 Array
,则必须调用 GetNextArrayItem
来开始读取数组中的元素。这些函数必须在循环中调用,直到它们返回 false,这表示当前遍历的对象或数组中没有更多项目。
有关相应的写入器接口,请参阅 IJSValueWriter
。
IJSValueReader
和 IJSValueWriter
很少直接使用。使用它们来创建序列化原生类型或反序列化为原生类型的函数。应用程序代码的其余部分必须使用这些函数来序列化/反序列化值。Microsoft.ReactNative.Cxx
和 Microsoft.ReactNative.Managed
项目为许多标准类型提供了序列化/反序列化函数。直接使用它们,或使用它们来定义您自己的类型的序列化/反序列化函数。
属性
ValueType
readonly
JSValueType
ValueType
获取当前值的类型。
方法
GetBoolean
bool GetBoolean
()
获取当前的 Boolean
值。
GetDouble
double GetDouble
()
以 Double
形式获取当前的 Number
值。
GetInt64
int64_t GetInt64
()
以 Int64
形式获取当前的 Number
值。
GetNextArrayItem
bool GetNextArrayItem
()
在当前数组中推进迭代器以获取下一个数组元素。然后可以通过调用其中一个 Get 函数来获取该元素。
如果成功获取到下一个数组项目,则返回 true
。否则,返回 false
,表示 JSON 类似数组的读取已完成。
注意
- 使用
ValueType
获取数组项目的类型,并使用其他 GetXXX 方法读取它。 - 使用
GetNextObjectProperty
方法开始读取JSValueType
Object
类型的属性值。 - 使用
GetNextArrayItem
方法开始读取JSValueType
`Array` 类型的属性值。
GetNextObjectProperty
bool GetNextObjectProperty
(out string propertyName)
在当前对象中推进迭代器以获取下一个对象属性。然后可以通过调用其中一个 Get 函数来获取属性值。
如果成功获取到下一个属性,则返回 true
。在这种情况下,propertyName
将设置为属性的名称。否则,返回 false
,表示 JSON 类似对象的读取已完成。
注意
- 使用
ValueType
获取属性值的类型,并使用其他 GetXXX 方法读取它。 - 使用
GetNextObjectProperty
方法开始读取JSValueType
Object
类型的属性值。 - 使用
GetNextArrayItem
方法开始读取JSValueType
`Array` 类型的属性值。
GetString
string GetString
()
获取当前的 String
值。
被引用方
Color
HandleCommandArgs
IComponentProps
IRedBoxErrorInfo
ImageSource
MethodDelegate
SyncMethodDelegate
旧架构
类型:接口
JSON 类似流的只进读取器。它用于读取原生模块和 Microsoft.ReactNative 库之间发送的数据。
JSON 类似流是满足 JSON 规范的数据结构。数据结构可能包含带有名称-值对的对象和项目数组。属性值或数组项目可以是 Null
、Object
、Array
、String
、Boolean
或 Number
类型。IJSValueReader
将 Number
类型视为 Int64
或 Double
。参见 JSValueType
。
当 IJSValueReader
读取数据时,它必须遍历整个树,不能跳过任何项目。例如,如果当前值类型是 Object
,则必须调用 GetNextObjectProperty
来开始读取当前对象的属性;如果当前类型是 Array
,则必须调用 GetNextArrayItem
来开始读取数组中的元素。这些函数必须在循环中调用,直到它们返回 false,这表示当前遍历的对象或数组中没有更多项目。
有关相应的写入器接口,请参阅 IJSValueWriter
。
IJSValueReader
和 IJSValueWriter
很少直接使用。使用它们来创建序列化原生类型或反序列化为原生类型的函数。应用程序代码的其余部分必须使用这些函数来序列化/反序列化值。Microsoft.ReactNative.Cxx
和 Microsoft.ReactNative.Managed
项目为许多标准类型提供了序列化/反序列化函数。直接使用它们,或使用它们来定义您自己的类型的序列化/反序列化函数。
Properties
ValueType
readonly
JSValueType
ValueType
获取当前值的类型。
方法
GetBoolean
bool GetBoolean
()
获取当前的 Boolean
值。
GetDouble
double GetDouble
()
以 Double
形式获取当前的 Number
值。
GetInt64
int64_t GetInt64
()
以 Int64
形式获取当前的 Number
值。
GetNextArrayItem
bool GetNextArrayItem
()
在当前数组中推进迭代器以获取下一个数组元素。然后可以通过调用其中一个 Get 函数来获取该元素。
如果成功获取到下一个数组项目,则返回 true
。否则,返回 false
,表示 JSON 类似数组的读取已完成。
注意
- 使用
ValueType
获取数组项目的类型,并使用其他 GetXXX 方法读取它。 - 使用
GetNextObjectProperty
方法开始读取JSValueType
Object
类型的属性值。 - 使用
GetNextArrayItem
方法开始读取JSValueType
`Array` 类型的属性值。
GetNextObjectProperty
bool GetNextObjectProperty
(out string propertyName)
在当前对象中推进迭代器以获取下一个对象属性。然后可以通过调用其中一个 Get 函数来获取属性值。
如果成功获取到下一个属性,则返回 true
。在这种情况下,propertyName
将设置为属性的名称。否则,返回 false
,表示 JSON 类似对象的读取已完成。
注意
- 使用
ValueType
获取属性值的类型,并使用其他 GetXXX 方法读取它。 - 使用
GetNextObjectProperty
方法开始读取JSValueType
Object
类型的属性值。 - 使用
GetNextArrayItem
方法开始读取JSValueType
`Array` 类型的属性值。
GetString
string GetString
()
获取当前的 String
值。