What is GSON πŸ™‡πŸ»β€β™‚οΈβ“ JSON vs GSON

Anupam Haldkar
2 min readJan 4, 2021

--

GSON is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. GSON can workπŸ‘·πŸ»β€β™€οΈ with arbitrary Java objects including pre-existing objects that you do not🚫 have source-code of. while JSON is a data format that is human-readable and supported by a wide variety of languages.

There are a few open-source projects that can convert Java objects to JSON. However, most of them require🎐 that you place Java annotations in your classes; something that you can not do if you do not have access🦻 to the source-code. Most also do not fully support the use of Java Generics. GSON considers both of these as very important design goals.

ObjectiveπŸ§šπŸ»β€β™‚οΈ

  • Provide simple toJson() and fromJson() methods to convert Java objects to JSON and vice-versa
  • Allow pre-existing unmodifiable objects to be converted to and from JSON
  • Extensive support of Java Generics
  • Allow custom representations for objects
  • Support arbitrarily complex objects (with deep inheritance hierarchies and extensive use of generic types)

Advantage β˜˜πŸ›

Standardized βˆ’ GSON is a standardized library that is managed by Google.

Efficient βˆ’ It is a reliable, fast, and efficient extension to the Java standard library. Optimized βˆ’ The library is highly optimized.

Support Generics βˆ’ It provides extensive support for generics.

Supports complex inner classes βˆ’ It supports complex objects with deep inheritance hierarchies.

Download/Integrating 🧩

Gradle🐘:

dependencies {
implementation 'com.google.code.gson:gson:2.8.6'
}

Maven 🌿:

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

Gson jar downloads are available from Maven Central.

Learn More πŸ‘‡πŸ» β€”

Gson User Guide β€” gson (google.com)

--

--

Anupam Haldkar

Spreading Assist Tech Shaper 🀝 Software Engineer πŸ§‘β€πŸ’»| Tech Dev βš™οΈ