diff --git a/pom.xml b/pom.xml
index 3bfb64f734da1b0d4bff057ec2bd9bc5cabae975..f9950c34af212ea200ec5100843bf0e9afd6d587 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,6 +57,11 @@
             <version>12.4.2.jre11</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.10.1</version>
+        </dependency>
 
     </dependencies>
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/GsonHandler.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/GsonHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..63a235bf5c6696c8cdde70d55a892dc376cf58ef
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/GsonHandler.java
@@ -0,0 +1,40 @@
+package de.hdm_stuttgart.battlearena.Persistance.Classes;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+
+public class GsonHandler {
+    Persistence singleton = Persistence.getInstance();
+    Gson gson = new Gson();
+
+    private static final Logger log = LogManager.getLogger(GsonHandler.class);
+    Type mapDataType = new TypeToken<ArrayList<MapData>>(){}.getType();
+
+    public void loadMaps() {
+        try (FileReader reader = new FileReader("src/main/resources/maps/localMaps.json")) {
+            singleton.maps = gson.fromJson(reader, mapDataType);
+            log.info("GSON - Maps successfully loaded from JSON");
+        } catch (Exception e) {
+            log.info(e);
+            log.info("GSON - Loading Maps from JSON failed");
+        }
+    }
+
+    public void updateMaps() {
+        try (FileWriter writer = new FileWriter("src/main/resources/maps/localMaps.json")) {
+            gson.toJson(singleton.maps, writer);
+            log.info("GSON - Maps successfully written to JSON");
+        } catch (
+                Exception e) {
+            log.info(e);
+            log.info("GSON - Saving SingleBookings to JSON failed");
+        }
+    }
+}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/MapData.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/MapData.java
index c265696ed7c31225c296be91d6943b18235b4723..249e4571fe0abdb1e6ceea180c7c91fba8ca066f 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/MapData.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/MapData.java
@@ -1,8 +1,35 @@
 package de.hdm_stuttgart.battlearena.Persistance.Classes;
-
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
 
 public class MapData {
     private static final Logger log = LogManager.getLogger(MapData.class);
+
+    private String mapID;
+    private String mapName;
+    private int mapHeight;
+    private int mapWidth;
+    private String mapData;
+
+    protected MapData(String mapID, String mapName, String mapSize, String mapData) {
+    this.mapID = mapID;
+    this.mapName = mapName;
+    this.mapData = mapData;
+
+    sizeParser(mapSize);
+    }
+
+    private void sizeParser(String mapSize){
+        int whereX = 0;
+
+        for(int i = 0; i > mapSize.length(); i++){
+            if(mapSize.substring(i, i+1).equals("x")){
+                whereX = i;
+                break;
+            }
+        }
+        mapHeight = Integer.valueOf(mapSize.substring(0, whereX));
+        mapWidth = Integer.valueOf(mapSize.substring(whereX));
+    }
+
 }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/Persistence.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/Persistence.java
index a675dffb9c42faf5d1cb83d30ff11ce7a1fd922e..4ddef45c7d8fcc455d1c05062317ab152ca92124 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/Persistence.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/Persistence.java
@@ -9,19 +9,16 @@ import java.util.LinkedHashMap;
 
 public class Persistence {
     private static final Logger log = LogManager.getLogger(Persistence.class);
-
     private static final Persistence singleton = new Persistence();
-
-    private Persistence (){}
-
     private Connection connection;
-
     private LinkedHashMap<String, String> mapNames;
-    private String map;
     private int[] sizeArrayInt;
     private String sizeString;
-
     protected static PlayerStatistics statistics = new PlayerStatistics("", 0,0,0,0,0,0);
+    protected ArrayList<MapData> maps = new ArrayList<MapData>();
+    private GsonHandler gsonHandler = new GsonHandler();
+
+    private Persistence (){}
 
     public void createPlayer(String player){
         statistics.setPlayerName(player);
@@ -31,6 +28,4 @@ public class Persistence {
         return singleton;
     }
 
-
-
 }
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index c634cb3cfeb82139f04c558b083bf4fc614f51d8..185f18371f3494a9e51d43fca7d672776a93c786 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -4,8 +4,10 @@ module gui {
     requires javafx.media;
     requires org.apache.logging.log4j;
     requires java.sql;
+    requires com.google.gson;
 
     opens de.hdm_stuttgart.battlearena to javafx.fxml;
     exports de.hdm_stuttgart.battlearena.Main;
     exports de.hdm_stuttgart.battlearena.Controller;
+    opens de.hdm_stuttgart.battlearena.Persistance.Classes to com.google.gson, javafx.fxml;
 }
diff --git a/src/main/resources/maps/localMaps.json b/src/main/resources/maps/localMaps.json
new file mode 100644
index 0000000000000000000000000000000000000000..caeeb4c11aa6ac6ea69ee672631c6cece2939c9b
--- /dev/null
+++ b/src/main/resources/maps/localMaps.json
@@ -0,0 +1,6 @@
+{
+  "name": "maps",
+  "version": "1.0.0",
+  "dependencies": {
+  }
+}