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方法开始读取JSValueTypeObject类型的属性值。 - 使用
GetNextArrayItem方法开始读取JSValueType`Array` 类型的属性值。
GetNextObjectProperty
bool GetNextObjectProperty(out string propertyName)
在当前对象中推进迭代器以获取下一个对象属性。然后可以通过调用其中一个 Get 函数来获取属性值。
如果成功获取到下一个属性,则返回 true。在这种情况下,propertyName 将设置为属性的名称。否则,返回 false,表示 JSON 类似对象的读取已完成。
注意
- 使用
ValueType获取属性值的类型,并使用其他 GetXXX 方法读取它。 - 使用
GetNextObjectProperty方法开始读取JSValueTypeObject类型的属性值。 - 使用
GetNextArrayItem方法开始读取JSValueType`Array` 类型的属性值。
GetString
string GetString()
获取当前的 String 值。
被引用方
ColorHandleCommandArgsIComponentPropsIRedBoxErrorInfoImageSourceMethodDelegateSyncMethodDelegate
旧架构
类型:接口
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方法开始读取JSValueTypeObject类型的属性值。 - 使用
GetNextArrayItem方法开始读取JSValueType`Array` 类型的属性值。
GetNextObjectProperty
bool GetNextObjectProperty(out string propertyName)
在当前对象中推进迭代器以获取下一个对象属性。然后可以通过调用其中一个 Get 函数来获取属性值。
如果成功获取到下一个属性,则返回 true。在这种情况下,propertyName 将设置为属性的名称。否则,返回 false,表示 JSON 类似对象的读取已完成。
注意
- 使用
ValueType获取属性值的类型,并使用其他 GetXXX 方法读取它。 - 使用
GetNextObjectProperty方法开始读取JSValueTypeObject类型的属性值。 - 使用
GetNextArrayItem方法开始读取JSValueType`Array` 类型的属性值。
GetString
string GetString()
获取当前的 String 值。