Unterschiede zwischen JSONObject, fastJson (JsonObject), Gson (JsonObject)

Überblick

In Java gibt es keine integrierte JSON-Analyse, Sie müssen eine Bibliothek eines Drittanbieters verwenden

  1. fastJson: Alibabas JSON-Bibliothek bietet den Vorteil einer schnellen Parsing-Geschwindigkeit und einer hohen Parsing-Effizienz und kann problemlos große Mengen an JSON-Daten verarbeiten
  2. JackSon: Die Community ist sehr aktivspring框架默认使用jackson, ** Jackson ist umfassender, unterstützt mehrere Datenformate und verfügt über umfangreiche Serialisierungs- und Deserialisierungsfunktionen, wie formatierte Ausgabe und benutzerdefinierte Serialisierung und Deserialisierung usw.**
  3. Gson: Von Google entwickelte JSON-Bibliothek

Jackson ähnelt Gson in Bezug auf Funktionsunterstützung, Stabilität, Skalierbarkeit, Benutzerfreundlichkeit und Community-Aktivität.

如果对解析速度有更高要求,那么 Fastjson 可能是一个不错的选择;如果需要更全面的特性支持,那么 Jackson 可能是更好的选择。

Die Verwendung der oben genannten mehreren JSON-Bibliotheken ist ähnlich. Ich werde sie im Folgenden nicht im Detail verwenden. Ich werde nur die von ihnen verwendeten POM-Abhängigkeiten erläutern. Wenn Sie es wissen möchten Für die spezifische Verwendung können Sie Google oder Baidu separat durchsuchen

com.alibaba.fastjson.JsonObject

verlassen

 <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.58</version>
</dependency>

org.json.JSONObject

verlassen

 <dependency>
     <groupId>org.json</groupId>
     <artifactId>json</artifactId>
     <version>20180130</version>
 </dependency>

Gson

verlassen

 <dependency>
     <groupId>com.google.code.gson</groupId>
     <artifactId>gson</artifactId>
     <version>2.3.1</version>
 </dependency>

Der Unterschied zwischen JSONObject und JsonObject

Pakete sind unterschiedlich

JSONObject gehört zum Paket org.json.JSONOBject und JsonObject gehört zum Paket com.google.gson.JsonObject

Sparen Sie auf unterschiedliche Weise

JSONObject verwendet HashMap zum Speichern von Schlüssel-Wert-Paaren,
JsonObject verwendet LInkedTreeMap zum Speichern von Schlüssel-Wert-Paaren.

Behandeln Sie Nullwerte unterschiedlich

JSONObject: 添加 value 为null,这个键值对会被删掉
JsonObject: 添加 value 为null, 可以正常添加

JSONObject会获取不到这个键值对,但是 JsonObject则会获取到 null的数据。

toString-Ergebnisse sind unterschiedlich

JSONObject verwendet HashMap zum Speichern von DatentoString的时候可能出现顺序和保存顺序不一致的情况

  • Wenn Sie den Inhalt zur Datenüberprüfung verwenden möchten, funktioniert dies möglicherweise nicht. Wenn Sie beispielsweise md5 zur Berechnung verwenden, kann der Überprüfungswert jedes Mal unterschiedlich sein.

Guess you like

Origin blog.csdn.net/yyuggjggg/article/details/129370965