Datenformate: JSON und XML
In den vorherigen Kapiteln haben wir untersucht, wie HTTP funktioniert und wie es Daten überträgt. In diesem Kapitel betrachten wir Formate wie JSON und XML, die verwendet werden können, um Daten im Body einer Serverantwort zu übertragen oder beim Senden einer Anfrage an den Server zu verwenden.
Was ist JSON?
JSON wird verwendet, um Daten im Key-Value-Format zu übertragen, was den Zugriff auf Daten und die direkte Umwandlung in ein Objekt sehr komfortabel macht.
Dieses Format unterstützt Arrays, Objekte sowie primitive Werte wie Strings, Zahlen und Boolean-Werte.
Datenformate in JSON
Für Arrays in JSON kann folgende Syntax verwendet werden:
{
"courses": ["Math", "Science"]
}
Alle Informationen werden in geschweifte Klammern eingeschlossen und der Schlüsselname (wie "courses") wird in Anführungszeichen angegeben. Der Wert, der diesem Schlüssel zugeordnet ist, ist in diesem Fall ein Array (["Math", "Science"]), das in eckige Klammern gesetzt wird, um anzuzeigen, dass es sich um ein Array handelt.
Wenn wir einfache primitive Typen (wie Zahlen, Zeichenketten oder boolesche Werte) in JSON übertragen möchten, können wir dies wie folgt tun:
{
"name": "John Doe",
"age": 30,
"isStudent": false
}
Wir können Objekte im JSON-Format übertragen. Ein Objekt wird durch eine Menge von Schlüssel-Wert-Paaren dargestellt, die in geschweifte Klammern eingeschlossen sind.
{
"address": {
"street": "123 Main St",
"city": "Anytown"
}
}
Jeder Schlüssel ist eine Zeichenkette und wird von einem Doppelpunkt gefolgt, mit dem entsprechenden Wert, der ein weiteres Objekt, ein Array, ein primitiver Typ oder null sein kann.
Übertragung von JSON über HTTP
Beim Übertragen von Daten im JSON-Format über HTTP verwenden sowohl Anfragen als auch Antworten den Header Content-Type mit dem Wert application/json. In einer Anfrage werden die Daten im Body der Anfrage platziert, während in einer Antwort die Daten im Body der Antwort enthalten sind.
Aufbau einer Anfrage:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"age": 30
}
Aufbau einer Antwort:
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": {
"userId": 12345
}
}
JSON-Serialisierung und -Deserialisierung
Serialisierung wandelt ein Objekt oder eine Datenstruktur in ein Format um, das für die Netzwerkübertragung oder Dateispeicherung geeignet ist.
Deserialisierung ist der umgekehrte Prozess, bei dem Daten aus dem JSON-Format wieder in ein Objekt oder eine Datenstruktur für die Verwendung im Code umgewandelt werden.
Abhängigkeit aus dem Video zur Integration der Serialisierung und Deserialisierung von JSON. Dies ist notwendig, damit die Klasse ObjectMapper verwendet werden kann.
Diese Abhängigkeit muss in die Datei pom.xml eingefügt und aktualisiert werden.
Verwendung des Maven-Repository
Was ist XML?
XML stellt Daten mithilfe von Tags dar, die eine hierarchische Struktur bilden. Jedes Element besitzt sowohl öffnende als auch schließende Tags und kann zusätzlich Attribute enthalten.
XML-Syntax
<person>
<name>John Doe</name>
<age>30</age>
<isStudent>false</isStudent>
<courses>
<course>Math</course>
<course>Science</course>
</courses>
<address>
<street>123 Main St</street>
<city>Anytown</city>
</address>
</person>
Wie ersichtlich, basiert hier alles auf Tags. Listen und Objekte sind nicht grundsätzlich verschieden, aber wenn ein einfacher Wert dargestellt werden soll, dient der Tag-Name als Schlüssel und der Wert innerhalb der Tags als Wert.
XML-Übertragung über HTTP:
Zum Übertragen von XML-Daten kann der Header Content-Type entweder auf application/xml oder text/xml gesetzt werden. Die Daten werden ebenfalls im Body der Anfrage oder Antwort platziert.
Beispiel einer Anfrage:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml
<user>
<name>John Doe</name>
<age>30</age>
</user>
Beispiel einer Antwort:
HTTP/1.1 200 OK
Content-Type: application/xml
<response>
<status>success</status>
<data>
<userId>12345</userId>
</data>
</response>
XML-Serialisierung und -Deserialisierung
Abhängigkeit aus dem Video zur Integration von Serialisierung und Deserialisierung von XML. Dies ist notwendig, damit die Klasse XmlMapper verwendet werden kann.
Diese Abhängigkeit muss in die Datei pom.xml eingefügt und aktualisiert werden.
Zusammenfassung
JSON ist die bevorzugte Wahl für moderne Webanwendungen aufgrund seiner Leichtgewichtigkeit und Einfachheit. Während XML in vielen Web-Szenarien weniger praktisch ist, kann es in Fällen nützlich sein, die eine komplexe Datenstruktur und strikte Schemata erfordern.
1. Welches Format wird verwendet, um Daten als key-value-Paare darzustellen, und ist für die Netzwerkübertragung leichter und praktischer?
2. Welcher der folgenden Codeausschnitte ist ein gültiges JSON?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
What are the main differences between JSON and XML?
Can you explain when to use JSON versus XML?
How does serialization and deserialization work in practice?
Awesome!
Completion rate improved to 3.45
Datenformate: JSON und XML
Swipe um das Menü anzuzeigen
In den vorherigen Kapiteln haben wir untersucht, wie HTTP funktioniert und wie es Daten überträgt. In diesem Kapitel betrachten wir Formate wie JSON und XML, die verwendet werden können, um Daten im Body einer Serverantwort zu übertragen oder beim Senden einer Anfrage an den Server zu verwenden.
Was ist JSON?
JSON wird verwendet, um Daten im Key-Value-Format zu übertragen, was den Zugriff auf Daten und die direkte Umwandlung in ein Objekt sehr komfortabel macht.
Dieses Format unterstützt Arrays, Objekte sowie primitive Werte wie Strings, Zahlen und Boolean-Werte.
Datenformate in JSON
Für Arrays in JSON kann folgende Syntax verwendet werden:
{
"courses": ["Math", "Science"]
}
Alle Informationen werden in geschweifte Klammern eingeschlossen und der Schlüsselname (wie "courses") wird in Anführungszeichen angegeben. Der Wert, der diesem Schlüssel zugeordnet ist, ist in diesem Fall ein Array (["Math", "Science"]), das in eckige Klammern gesetzt wird, um anzuzeigen, dass es sich um ein Array handelt.
Wenn wir einfache primitive Typen (wie Zahlen, Zeichenketten oder boolesche Werte) in JSON übertragen möchten, können wir dies wie folgt tun:
{
"name": "John Doe",
"age": 30,
"isStudent": false
}
Wir können Objekte im JSON-Format übertragen. Ein Objekt wird durch eine Menge von Schlüssel-Wert-Paaren dargestellt, die in geschweifte Klammern eingeschlossen sind.
{
"address": {
"street": "123 Main St",
"city": "Anytown"
}
}
Jeder Schlüssel ist eine Zeichenkette und wird von einem Doppelpunkt gefolgt, mit dem entsprechenden Wert, der ein weiteres Objekt, ein Array, ein primitiver Typ oder null sein kann.
Übertragung von JSON über HTTP
Beim Übertragen von Daten im JSON-Format über HTTP verwenden sowohl Anfragen als auch Antworten den Header Content-Type mit dem Wert application/json. In einer Anfrage werden die Daten im Body der Anfrage platziert, während in einer Antwort die Daten im Body der Antwort enthalten sind.
Aufbau einer Anfrage:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"age": 30
}
Aufbau einer Antwort:
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": {
"userId": 12345
}
}
JSON-Serialisierung und -Deserialisierung
Serialisierung wandelt ein Objekt oder eine Datenstruktur in ein Format um, das für die Netzwerkübertragung oder Dateispeicherung geeignet ist.
Deserialisierung ist der umgekehrte Prozess, bei dem Daten aus dem JSON-Format wieder in ein Objekt oder eine Datenstruktur für die Verwendung im Code umgewandelt werden.
Abhängigkeit aus dem Video zur Integration der Serialisierung und Deserialisierung von JSON. Dies ist notwendig, damit die Klasse ObjectMapper verwendet werden kann.
Diese Abhängigkeit muss in die Datei pom.xml eingefügt und aktualisiert werden.
Verwendung des Maven-Repository
Was ist XML?
XML stellt Daten mithilfe von Tags dar, die eine hierarchische Struktur bilden. Jedes Element besitzt sowohl öffnende als auch schließende Tags und kann zusätzlich Attribute enthalten.
XML-Syntax
<person>
<name>John Doe</name>
<age>30</age>
<isStudent>false</isStudent>
<courses>
<course>Math</course>
<course>Science</course>
</courses>
<address>
<street>123 Main St</street>
<city>Anytown</city>
</address>
</person>
Wie ersichtlich, basiert hier alles auf Tags. Listen und Objekte sind nicht grundsätzlich verschieden, aber wenn ein einfacher Wert dargestellt werden soll, dient der Tag-Name als Schlüssel und der Wert innerhalb der Tags als Wert.
XML-Übertragung über HTTP:
Zum Übertragen von XML-Daten kann der Header Content-Type entweder auf application/xml oder text/xml gesetzt werden. Die Daten werden ebenfalls im Body der Anfrage oder Antwort platziert.
Beispiel einer Anfrage:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml
<user>
<name>John Doe</name>
<age>30</age>
</user>
Beispiel einer Antwort:
HTTP/1.1 200 OK
Content-Type: application/xml
<response>
<status>success</status>
<data>
<userId>12345</userId>
</data>
</response>
XML-Serialisierung und -Deserialisierung
Abhängigkeit aus dem Video zur Integration von Serialisierung und Deserialisierung von XML. Dies ist notwendig, damit die Klasse XmlMapper verwendet werden kann.
Diese Abhängigkeit muss in die Datei pom.xml eingefügt und aktualisiert werden.
Zusammenfassung
JSON ist die bevorzugte Wahl für moderne Webanwendungen aufgrund seiner Leichtgewichtigkeit und Einfachheit. Während XML in vielen Web-Szenarien weniger praktisch ist, kann es in Fällen nützlich sein, die eine komplexe Datenstruktur und strikte Schemata erfordern.
1. Welches Format wird verwendet, um Daten als key-value-Paare darzustellen, und ist für die Netzwerkübertragung leichter und praktischer?
2. Welcher der folgenden Codeausschnitte ist ein gültiges JSON?
Danke für Ihr Feedback!