为什么 JsonElement 是 struct 类型?
why JsonElement is struct type?
在许多 JSON 解析器中,json 的元素显示为对象(引用)类型。
但是在 C# 中,System.Text.Json JsonElement
是 struct
类型。为什么JsonElement是struct类型?
我担心这会导致不必要的内存复制。
如果 JsonElement 有非常大的数据怎么办?如果 JsonElement 的数组包含超过 1000 个对象怎么办?
如果您查看 source code,您会发现 JsonElement
非常轻量级。它只有两个字段:对包含文档的引用和文档的索引。特别是,它不直接包含元素的所有数据。
这 避免了 造成大量内存流失,因为(例如)迭代文档中的所有元素是高效的,而不必创建大量对象.
在许多 JSON 解析器中,json 的元素显示为对象(引用)类型。
但是在 C# 中,System.Text.Json JsonElement
是 struct
类型。为什么JsonElement是struct类型?
我担心这会导致不必要的内存复制。
如果 JsonElement 有非常大的数据怎么办?如果 JsonElement 的数组包含超过 1000 个对象怎么办?
如果您查看 source code,您会发现 JsonElement
非常轻量级。它只有两个字段:对包含文档的引用和文档的索引。特别是,它不直接包含元素的所有数据。
这 避免了 造成大量内存流失,因为(例如)迭代文档中的所有元素是高效的,而不必创建大量对象.