c# - WPF 读/写 JSON 与 XML

标签 c# json xml wpf data-structures

我正在寻找一种从文件中读取和写入数据的解决方案。该数据是由文件路径、名称和系统上视频播放应用程序兼容的视频格式列表组成的列表。 XML 数据结构如下所示。

<player>
    <name>WMP</name>
    <path>C:\Program Files (x86)\Windows Media Player\wmplayer.exe</path>
    <extensionList>
        <string>AVI</string>
        <string>WMP</string>
    </extensionList>
</player>

我以前使用 XMLSerializer 序列化播放器类列表,效果非常好,在此之前我使用过 SQL。我最近听说过 JSON,并希望在存储数据方面拓宽我的选择范围。有没有人对哪种格式更适合我的 WPF 应用程序有任何建议,或者是否有更好的数据访问方法可以满足我的需要。

最佳答案

XML 的理论上的优势是您可以使用 xpath 进行某种查询,并有可能处理更大的数据集。

特别是在 WPF 中,您有 XmlDataProvider,您可以在其中将 UI 控件直接数据绑定(bind)到 xml 节点。

这是理论。在现实世界中,您几乎肯定会将 xml 反序列化为数据传输对象,这样您就可以利用强类型类、编译时检查、OOP 等。在这种情况下,上述 xml 的优势就无关紧要了。

另一方面,JSON 文件稍微小一些,JSON 序列化器稍微快一些,而且人类可读性可能更好。

文件大小在 web 场景中起着重要作用,在这种情况下,您需要在客户端和服务器之间传输数据(JSON 格式来自 javascript 并非巧合),但您的情况并非如此。您可能不必关心序列化性能,除非您正在处理大型数据集。

在您的情况下,JSON 和 XML 都没有好坏之分。两者都能很好地完成工作,您不会做出错误的决定。

恕我直言,如果您以前使用过 XML,现在就选择 JSON,这样您将对两者都有经验并学到新东西。最后,它只是几行代码,您可以在需要时轻松地将序列化逻辑更改为其他内容。

关于c# - WPF 读/写 JSON 与 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30616956/

相关文章:

c# - 用双反斜杠替换单反斜杠

具有异步任务和相关后异步任务的 C# ForEach 循环

javascript - 返回 json 文件的一部分作为 jquery 中的变量

python - 使用 beautifulsoup 将大型 xml 文件拆分为多个文件

c# - 使用 C# mono 的 WindowsAzure.Storage

c# - 'xy' 中的未知列 'where clause'

javascript - 评估一个变量以用作变量名?

javascript - toJSON "Object doesn' t 支持此属性或方法”

geoserver - 使用 XML (GeoServer) 的 PHP Post WMS GetMap 请求

regex - 我们可以将值的正则表达式放入 DTD 中吗?