web-dev-qa-db-fra.com

org.json.JSONObject vs bibliothèque Gson JsonObject

Quelles sont les différences entre ces deux classes?

Si quelqu'un utilise la bibliothèque Gson, il est préférable d'utiliser com.google.json.JsonObject sur org.json.JSONObject?

Quelqu'un pourrait-il énumérer les avantages et les inconvénients de ces 2 choix?

21
iamcrypticcoder

De nombreuses implémentations JSON sont disponibles sur le marché et la plupart d'entre elles sont open source. Chacun a des avantages et des inconvénients spécifiques.

  • Google GSON
  • Jackson
  • org.json etc.

Google GSON cliquez pour les documents officiels

  • Fournir des méthodes simples toJson () et fromJson () pour convertir les objets Java en JSON et vice-versa)
  • Autoriser la conversion des objets non modifiables préexistants vers et depuis JSON
  • Prise en charge étendue de Java Generics
  • Autoriser les représentations personnalisées pour les objets
  • Prend en charge des objets arbitrairement complexes (avec des hiérarchies d'héritage profondes et une utilisation étendue des types génériques)

Jackson cliquez pour les documents officiels

  • API de streaming ou analyse/génération incrémentielle: lit et écrit le contenu JSON comme des événements discrets
  • Modèle d'arbre: fournit une représentation d'arbre en mémoire modifiable d'un document JSON
  • Liaison de données: convertit JSON vers et depuis POJO

Certains blogs de comparaison, cliquez ici blogs1 , blog2

J'ai personnellement fait un benchmark pour la sérialisation et la désérialisation en utilisant GSON vs Jackson vs Simple JSON

  • Très petit objet: Google gson est plus rapide que Jackson et Simple JSON
  • Grands objets: Google gson est plus rapide que Jackson et Simple JSON
10
GrabNewTech

Voici les principales différences:

1) GSON peut utiliser la définition d'objet pour créer directement un objet du type souhaité. JSONObject doit être analysé manuellement.

2) org.json est une API simple et arborescente. Sa plus grande faiblesse est qu'il vous oblige à charger l'intégralité du document JSON dans une chaîne avant de pouvoir l'analyser. Pour les documents JSON volumineux, cela peut être inefficace.

3) La plus grande faiblesse de l'implémentation org.json est de loin JSONException. Ce n'est tout simplement pas pratique d'avoir à placer un bloc try/catch autour de tous vos trucs JSON.

4) Gson est la meilleure API pour l'analyse JSON sur Android. Il a une très petite taille binaire (moins de 200 Ko), une liaison de données rapide et une API simple et facile à utiliser.

5) GSON et Jackson sont les solutions les plus populaires pour gérer les données JSON dans le monde Java.

8
Mehmood Memon