Skip to content

JSON in Java

Josh edited this page Jun 12, 2023 · 1 revision

JSON

JSON steht für JavaScript Object Notation und ist ein leichtgewichtiges Datenaustauschformat. Es wurde entwickelt, um ein einfacheres Alternativformat zu XML zu bieten, das für den Datenaustausch zwischen verschiedenen Programmen und APIs verwendet werden kann. JSON-Dokumente haben eine einfache Struktur, die auf einer Kombination von Schlüssel-Wert-Paaren und Listen von Werten basiert.

Struktur

JSON-Dokumente bestehen aus einer oder mehreren Entitäten, wobei jede Entität entweder ein Objekt oder ein Array von Objekten ist. Objekte bestehen aus einer Reihe von Schlüssel-Wert-Paaren, die durch Doppelpunkte getrennt sind und von geschweiften Klammern umgeben werden. Arrays bestehen aus einer Reihe von Werten, die durch Kommas getrennt und von eckigen Klammern umgeben sind.

Hier ist ein einfaches Beispiel für ein JSON-Objekt:

{
    "name": "Max Mustermann",
    "age": 30,
    "city": "Berlin"
}

Und hier ist ein Beispiel für ein JSON-Array:

[
    {
        "name": "Max Mustermann",
        "age": 30,
        "city": "Berlin"
    },
    {
        "name": "Anna Müller",
        "age": 25,
        "city": "München"
    }
]

Verwendung in Java

In Java kann JSON mit Bibliotheken wie Gson oder Jackson geparsed und generiert werden. Hier ist ein Beispiel für Gson:

import com.google.gson.Gson;

public class Main {
    public static void main(String[] args) {
        Gson gson = new Gson();

        // Objekt in JSON konvertieren
        String json = gson.toJson(new Person("Max Mustermann", 30, "Berlin"));
        System.out.println(json); // {"name":"Max Mustermann","age":30,"city":"Berlin"}

        // JSON in Objekt konvertieren
        Person person = gson.fromJson(json, Person.class);
        System.out.println(person.getName()); // "Max Mustermann"
    }

    private static class Person {
        private String name;
        private int age;
        private String city;

        public Person(String name, int age, String city) {
            this.name = name;
            this.age = age;
            this.city = city;
        }

        public String getName() {
            return name;
        }

        public int getAge() {
            return age;
        }

        public String getCity() {
            return city;
        }
    }
}

In diesem Beispiel wird das Objekt Person in JSON konvertiert und dann das JSON wieder in ein Objekt konvertiert. Die Gson-Bibliothek behandelt dabei das Marshalling und Unmarshalling von JSON und Java-Objekten.