3

我需要将数据从文件导入到我的应用程序。显而易见的选择是 XML 和 JSON。我听说 JSON 是轻量级的,当用 Jackson 解析时,它提供了良好的性能。但我也听说用于 XML 的 JiBX 速度很快,并且使用 XMLpull 来提供良好的性能。我想知道选择哪个选项以及为什么?我可以将 XML 与 JiBX 和 JSON 与 Jackson 进行速度比较吗?另外,我想知道 Google Gson 在 JSON 解析方面是否比 Jackson 更好。

4

3 回答 3

2

Json 是轻量级的。如果要使用大文件使用,JSon 与 Jackson。

这篇文章给出了很好的解释(特别是阅读注:)。你有xml

DOM、PULL 和 SAX 等不同类型。但据我所知,JSON 是最好的。大型

文件,更喜欢杰克逊。http://www.javabeat.net/2011/05/androids-json-parser/

对于杰克逊和 gson。看看这个链接。

杰克逊VS。格森

所以在比较 xml 和 json 时,我总是建议你使用 json,因为它是 android 的轻量级数据。所以它会很快加载和显示数据。还有格森,

这取决于您的项目。请看上面的链接比较。你会明白的。

于 2013-01-25T10:14:13.333 回答
0

此外,如果您需要,杰克逊也可以使用https://github.com/FasterXML/jackson-dataformat-xml

我也同意 Jackson+JSON 将比任何基于 XML 的解决方案更快(根据https://github.com/eishay/jvm-serializers)。JibX 还不错,并且对于大多数用途来说可能足够快(就像许多其他选项一样)。但如果速度是你的事,杰克逊会更快的选择你提到的。

于 2013-01-25T19:11:09.237 回答
0

我同意在纯粹的性能方面,JSON 将比 JiBX 更快。

您选择的工具应取决于您传输的数据。

如果您有具体的数据定义,请使用 JiBX。JiBX 特别擅长创建和检索复杂的数据对象。JiBX 将确保您的数据正确,并自动将您的数据与 Java 对象相互转换。

如果您想要更大的灵活性,请使用 JSON。JSON 不会检查您的数据是否正确。

例如,当您在 JiBX 中创建对象时:

Person person = new Person();
person.name = "Don";
person.age = 52;

当您在 JiBX 中检索信息时:

System.out.println("Name: " + person.name);
System.out.println("Age: " + person.age);

在 JSON 中,您的代码如下所示:

JSONObject person = new JSONObject();
person.put("name", "Don");
person.put("age", new Integer(52));

要检索传输的信息:

String name = person.get("name");
long age = person.get("age");

如您所见,JiBX 代码更易于阅读,但 JSON 更灵活,因为您没有模式定义。

在任一解决方案中,您的代码在您的 Android 客户端和您的 java 服务/服务器中完全相同。

我希望这有帮助。

Don Corley - JiBX 贡献者

于 2013-01-26T10:03:48.187 回答