一个轻量级的 json 文档对象模型。
JsonNode
00 Remarks
这里没有直接复用 Microsoft.VisualBasic.Serialization.JSON 中基于 DataContractJsonSerializer 的反序列化器,原因有两点:
- tokenizer.json 中的
vocab是一个拥有十余万个任意 Unicode 字符
作为键名的字典,并且 normalizer / pre_tokenizer 等节点是依据 type 字段区分的多态结构,契约式序列化器无法描述这样的模式;
- 该文件体积约为 7.8 MB,此处的实现直接在字符缓冲区上扫描、不产生中间字符串,
解析开销与内存占用都显著低于反射式反序列化。
本实现不引入任何新的工程引用,因此可以同时用于 net10.0 与 net10.0-windows 两个目标框架。
01 Syntax
Microsoft.VisualBasic.Data.NLP.ChineseTokenizer.HuggingFace.JsonNode
02 Methods
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| Type | 1 | 当前节点的数据类型。 |
| StringValue | 1 | 字符串字面值,仅当 JsonNode.Type 为 JsonNodeType.String 时有效。 |
| NumberValue | 1 | 数值字面值,仅当 JsonNode.Type 为 JsonNodeType.Number 时有效。 |
| BoolValue | 1 | 布尔字面值,仅当 JsonNode.Type 为 JsonNodeType.Boolean 时有效。 |
| Members | 1 | 对象成员表,仅当 JsonNode.Type 为 JsonNodeType.Object 时有效。 |
| Items | 1 | 数组元素表,仅当 JsonNode.Type 为 JsonNodeType.Array 时有效。 |
| IsNull | 1 | 当前节点是否为 json 的 null 字面量。 |
| Item | 1 | 按键名读取对象成员,键不存在或当前节点不是对象时返回 Nothing。 |
04 Members
AsString(
String)读取字符串值,节点为空或类型不符时返回 default。
AsInteger(
Int32)读取整数值,节点为空或类型不符时返回 default。
AsDouble(
Double)读取双精度值,节点为空或类型不符时返回 default。
AsBoolean(
Boolean)读取布尔值,节点为空或类型不符时返回 default。
Type
当前节点的数据类型。
StringValue
字符串字面值,仅当 JsonNode.Type 为 JsonNodeType.String 时有效。
NumberValue
数值字面值,仅当 JsonNode.Type 为 JsonNodeType.Number 时有效。
BoolValue
布尔字面值,仅当 JsonNode.Type 为 JsonNodeType.Boolean 时有效。
Members
对象成员表,仅当 JsonNode.Type 为 JsonNodeType.Object 时有效。
Items
数组元素表,仅当 JsonNode.Type 为 JsonNodeType.Array 时有效。
IsNull
当前节点是否为 json 的 null 字面量。
Item(
String)按键名读取对象成员,键不存在或当前节点不是对象时返回 Nothing。
ToString()