Groovy 解析 JSON 与 XML

Groovy parsing JSON vs XML

提问人:mbrevoort 提问时间:10/8/2008 最后编辑:mbrevoort 更新时间:10/18/2008 访问量:6470

问:

使用 groovy,您是否希望在读取和查询 JSON 和 XML 的速度和内存开销方面获得更好的性能?

XML JSON 序列化 Grails Groovy

评论


答:

6赞 S.Lott 10/8/2008 #1

JSON 比 XML 更小、更简单。我敢打赌,JSON的解析速度更快。

YAML 会更快。

评论

0赞 Anthony Cramp 10/8/2008
我以为YAML是JSON的超集......因此,如果使用 JSON 解析的内容更少,那不是更快吗?
0赞 S.Lott 10/8/2008
请参阅 YAML 与 JSON yaml.org 区别。更具表现力,解析 JSON 也更简单。
0赞 Adam Lassek 10/15/2008
请参阅 redhanded.hobix.com/inspect/yamlIsJson.html 所有 JSON 都是有效的 YAML,因此 YAML 可以被视为 JSON 的超集。
0赞 StaxMan 5/7/2009
不:YAML 肯定不会更快。它更复杂,解析器必须做更多的工作。它可能会比最快的 xml 解析器(参见“Aalto”)慢,do. JSON Java 的实现可能比 xml 更快,但它更多地取决于处理模型和实现,而不是数据格式。
1赞 Matt Passell 8/25/2009
我不确定 YAML 与 JSON,但我非常有信心它们中的任何一个都会比 XML 更快地处理。我认为 StaxMan 的意思是“Java 的 JSON 实现可以比 FOR xml 更快”,但如果我错了,他总是可以纠正我。
1赞 Seibar 10/8/2008 #2

XML 的开销比 JSON 多一点,因为尖括号和额外的信息等等。出于这个原因,任何好的解析器都应该能够比 XML 更快地解析 JSON。

评论

1赞 S.Lott 10/8/2008
“再多一点”?这是慈善事业。我发现“船载更多”更准确。也许我只是在看非常糟糕的 XML。
1赞 StaxMan 5/7/2009
实际上,核心 xml 1.0 在解析方面并没有那么多重要的东西:如果使用 DTD,只有命名空间、换行符规范化和 DTD 实体处理(这实际上是一件大事)。所有其他(可选)xml cruft 都变得复杂;如果您使用 XML 模式、DTD、XSLT 等。
2赞 gizmo 10/14/2008 #3

如果速度真的是一个问题,我宁愿使用 java 库来解析我想要的任何内容,而不是依赖 Groovy 的实现。

2赞 Nelson 10/15/2008 #4

如果架构相同,信息相同,则内存使用率几乎相同。两者之间的性能应该可以忽略不计。

2赞 Cliff 10/18/2008 #5

我相信,如果架构和数据相同,除了分析器之外,其他任何东西都无法检测到性能差异。也就是说,如果您使用了错误的 XML 解析器,您可能会看到很大的不同。换句话说,SAX 实现可以轻松匹配或优于 JSON 解析。cinsider 有很多外部因素。如果你想要真实的故事,在同一个数据/架构上同时抛出一个 JSON 和一个 SAX 解析器,没有额外的逻辑。节省的大量资金来自用于解释解析的逻辑。根据您的要求,使用 DOM 或拉式解析器可能更简单,而 SAx 会导致过于复杂的非高性能解决方案。此外,解析器之间也存在明显的差异。加上文件大小的变量,你很快就会失去你实际测量的范围。另一个示例是,如果 XML 包含必须通过网络解析的 DTD 描述和实体引用,并且网络连接具有高延迟,则可以看到 JSON 的改进。这一切都归结为你真正想做的事情。