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()
获取当前 Number 值作为 Double。
GetInt64
int64_t GetInt64()
获取当前 Number 值作为 Int64。
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 值。