diff --git a/json-modules/gson-2/README.md b/json-modules/gson-2/README.md
new file mode 100644
index 0000000000..40d5515567
--- /dev/null
+++ b/json-modules/gson-2/README.md
@@ -0,0 +1,7 @@
+## GSON
+
+This module contains articles about Gson
+
+### Relevant Articles:
+
+
diff --git a/json-modules/gson-2/pom.xml b/json-modules/gson-2/pom.xml
new file mode 100644
index 0000000000..aa451bdeed
--- /dev/null
+++ b/json-modules/gson-2/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+ gson-2
+ gson-2
+
+
+ com.baeldung
+ json-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+
+
+ 2.10.1
+
+
+
\ No newline at end of file
diff --git a/json-modules/gson-2/src/main/java/com/baeldung/gson/parsingerrors/Person.java b/json-modules/gson-2/src/main/java/com/baeldung/gson/parsingerrors/Person.java
new file mode 100644
index 0000000000..387d6e1582
--- /dev/null
+++ b/json-modules/gson-2/src/main/java/com/baeldung/gson/parsingerrors/Person.java
@@ -0,0 +1,15 @@
+package com.baeldung.gson.parsingerrors;
+
+public class Person {
+
+ public String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public Person(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/json-modules/gson-2/src/test/java/com/baeldung/gson/parsingerror/GsonErrorDemoUnitTest.java b/json-modules/gson-2/src/test/java/com/baeldung/gson/parsingerror/GsonErrorDemoUnitTest.java
new file mode 100644
index 0000000000..d97f695ddf
--- /dev/null
+++ b/json-modules/gson-2/src/test/java/com/baeldung/gson/parsingerror/GsonErrorDemoUnitTest.java
@@ -0,0 +1,55 @@
+package com.baeldung.gson.parsingerror;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import java.lang.reflect.Type;
+import java.util.Collection;
+
+import org.junit.jupiter.api.Test;
+
+import com.baeldung.gson.parsingerrors.Person;
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+import com.google.gson.reflect.TypeToken;
+
+class GsonErrorDemoUnitTest {
+
+ @Test
+ void givenAJsonArray_WhenTellingGsonToExpectAnObject_ThenThrows() {
+ assertThrows(JsonSyntaxException.class, () -> {
+ Person person = new Gson().fromJson("[{\"name\":\"John\"},{\"name\":\"James\"}]", Person.class);
+ });
+ }
+
+ @Test
+ void givenAJsonArray_WhenParsingIntoAnArray_ThenOK() {
+ Person[] personArray = new Gson().fromJson("[{\"name\":\"John\"},{\"name\":\"James\"}]", Person[].class);
+ assertThat(personArray).extracting(Person::getName)
+ .containsExactly("John", "James");
+ }
+
+ @Test
+ void givenAJsonArray_WhenParsingIntoACollection_ThenOK() {
+ Type collectionType = new TypeToken>() {
+ }.getType();
+ Collection personCollection = new Gson().fromJson("[{\"name\":\"John\"},{\"name\":\"James\"}]", collectionType);
+ assertThat(personCollection).extracting(Person::getName)
+ .containsExactly("John", "James");
+ }
+
+ @Test
+ void givenAJsonObject_WhenTellingGsonToExpectAnArray_ThenThrows() {
+ assertThrows(JsonSyntaxException.class, () -> {
+ Person[] personArray = new Gson().fromJson("{\"name\":\"John\"}", Person[].class);
+ });
+ }
+
+ @Test
+ void givenAJsonObject_WhenParsingIntoAnObject_ThenOK() {
+ Person person = new Gson().fromJson("{\"name\":\"John\"}", Person.class);
+ assertEquals("John", person.getName());
+ }
+
+}
diff --git a/json-modules/pom.xml b/json-modules/pom.xml
index 2deb53d533..15a066daa4 100644
--- a/json-modules/pom.xml
+++ b/json-modules/pom.xml
@@ -18,6 +18,7 @@
json-2
json-path
gson
+ gson-2