为什么jsonelement是结构类型?

发布于 2025-01-24 02:35:48 字数 229 浏览 0 评论 0原文

在许多JSON解析器中,JSON的元素作为对象(参考)类型呈现。

但是,在C#中,System.Text.json JSONELEMENTstruct类型。为什么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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凌乱心跳 2025-01-31 02:35:48

如果您查看源代码您会看到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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文