为什么jsonelement是结构类型?
在许多JSON解析器中,JSON的元素作为对象(参考)类型呈现。
但是,在C#中,System.Text.json JSONELEMENT
是struct
类型。为什么jsonelement是结构类型?
我担心这可能会导致不必要的记忆副本。
如果Jsonelement有很大的数据怎么办?如果Jsonelement具有包含1000多个对象的数组怎么办?
in many JSON parsers, the element of json is presented as object(reference) type.
However in C#, System.Text.Json JsonElement
is struct
type. Why JsonElement is struct type?
I'm worried about this could cause unnecessary memory copy.
What if JsonElement has very big data? what if JsonElement has array that contains over 1000 objects?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您查看源代码您会看到
jsonelement
非常轻巧。它只有两个字段:对包含文档的引用,以及文档中的索引。特别是,它不直接包含该元素的所有数据。此避免创建大量内存搅拌,因为(例如)在文档中的所有元素上迭代,而无需创建大量对象。
If you look at the source code you'll see that
JsonElement
is very lightweight. It only has two fields: a reference to the containing document, and an index into the document. In particular, it doesn't directly contain all the data for the element.This avoids creating a lot of memory churn, as it's efficient to (for example) iterate over all the elements in a document, without it having to create large numbers of objects.