JSON
Тематический план
-
-
JSON ist eine leichtgewichtige, textbasierte, sprachunabhängige Syntax
zur Definition von Datenaustauschformaten. Sie wurde von der
Programmiersprache ECMAScript abgeleitet, ist aber programmiersprachen
unabhängig. JSON definiert einen kleinen Satz von Strukturierungsregeln für die
portablen Darstellung von strukturierten Daten. -
Das JSON Format ist unter dem Link verfügbar.
-
-
-
Was ist JSON und wie wird es verwendet?
Vergleich mit anderen Datenformaten (wie XML) -
Grundlagen der JSON-Syntax
Datentypen in JSON-
JSON baut auf zwei Strukturen auf:
-
Name/Wert Paare. In verschiedenen Sprachen wird dies realisiert als ein
Objekt (object), Satz (record), Struktur (struct), Wörterbuch bzw. Verzeichnis
(dictionary), Hash-Tabelle (hash table), Schlüssel-Liste (keyed list) oder als
ein assoziatives Array (associative array).
- Eine geordnete Liste von Werten. In den meisten Sprachen wird das als Array (array), Vektor (vector), Liste (list) oder Sequenz (sequence) realisiert.
-
Name/Wert Paare. In verschiedenen Sprachen wird dies realisiert als ein
Objekt (object), Satz (record), Struktur (struct), Wörterbuch bzw. Verzeichnis
(dictionary), Hash-Tabelle (hash table), Schlüssel-Liste (keyed list) oder als
ein assoziatives Array (associative array).
-
Im Dokument der ECMA finden Sie graphische Beschreibungen der Syntax.
Zum besseren Verständnis wird hier ein Beispiel erläutert. -
Die JSON-Syntax ist von der Syntax der JavaScript-Objektnotation abgeleitet, besteht aber nur aus Text.
JSON-Daten werden als Name/Wert-Paare geschrieben, ähnlich wie bei JavaScript-Objekteigenschaften.Grundlegende Syntaxregeln:
- Die Daten bestehen aus Name/Wert-Paaren.
- Die Daten werden durch Kommas getrennt.
- Geschweifte Klammern {} enthalten Objekte.
- Eckige Klammern [] stehen für Arrays.
-
Beispiele zur JSON Syntax:
[ 10, 50, 30, 20, 40 ]
einfaches Array mit Zahlen[ "Peter", 33, "FIAE", "53639"]
JSON ermöglicht es, dass Einträge in JSON-Arrays unterschiedliche Strukturen und Typen haben können.{ color: "red", value: "#f00"}
JSON Objekt[{ color: "red",value: "#f00" },{ color: "green", value: "#0f0" },{ color: "blue", value: "#00f"}]
JSON-Daten beschreiben ein Array, und jedes Element dieses Arrays ist ein Objekt[{"id": "0001", "type": "donut","name": "Cake", "ppu": 0.55,"batters":{ "batter": [{ "id": "1001", "type": "Regular" },
{ "id": "1002", "type": "Chocolate" },{ "id": "1003", "type": "Blueberry" },{ "id": "1004", "type": "Devil's Food" }]},
"topping":[{ "id": "5001", "type": "None" },{ "id": "5002", "type": "Glazed" },{ "id": "5005", "type": "Sugar" },
{ "id": "5007", "type": "Powdered Sugar" },{ "id": "5006", "type": "Chocolate with Sprinkles" },
{ "id": "5003", "type": "Chocolate" },{ "id": "5004", "type": "Maple" }]},]
Array mehrfach verschachtelter Objekte
-
-
Zeichenketten, Zahlen, Objekte, Arrays, Boolesche Werte und null
-
JSON unterstützt die folgenden Datentypen:
String: Eine Folge von null oder mehr Unicode-Zeichen. Zeichenketten werden in doppelte Anführungszeichen gesetzt. Beispiel: "Name": "Johannes".
Zahl: Eine Dezimalzahl mit Vorzeichen, die einen Bruchteil enthalten und die Exponential-E-Notation verwenden kann, aber keine Nicht-Zahlen wie NaN enthalten darf. Beispiel: "Alter": 30.
Objekt: Eine ungeordnete Menge von Name/Wert-Paaren. Ein Objekt beginnt mit { (linke Klammer) und endet mit } (rechte Klammer). Beispiel: "Mitarbeiter": { "name": "John", "Alter": 30, "Stadt": "Berlin" }.
Array: Eine geordnete Liste von Werten. Ein Array beginnt mit [ (linke Klammer) und endet mit ] (rechte Klammer). Die Werte werden durch Kommas getrennt. Beispiel: "Zahlen": [1, 2, 3, 4].
Bool: Stellt einen wahren oder falschen Wert dar. Beispiel: "Verkauf": wahr.
Null: Ein leerer Wert, dargestellt durch null. Beispiel: "mittelname": null.
-
-
Wie man JSON-Objekte und -Arrays definiert
Verschachtelung und Zugriff auf Daten innerhalb von Objekten und Arrays-
Ein JSON-Objekt wird durch geschweifte Klammern
{}
dargestellt und enthält eine Menge von Schlüssel-Wert-Paaren. Jeder Schlüssel ist ein String und wird von einem Doppelpunkt:
gefolgt, der den zugehörigen Wert vom Schlüssel trennt. Die Werte können unterschiedliche Typen haben, wie String, Zahl, Array, ein weiteres Objekt oder sogarnull
.
In diesem Beispiel ist das Attribut interessen des Objektes ein Array und{ "name": "Lisa", "alter": 28, "interessen": ["Lesen", "Wandern", "Programmieren"], "wohnort": { "stadt": "München", "land": "Deutschland" } }
wohnort ein eigenständiges Objekt mit zwei Attributen. -
Ein JSON-Array wird durch eckige Klammern
[]
dargestellt und enthält eine Liste von Werten. Die Werte in einem Array können unterschiedliche Typen haben, einschließlich Objekte, und sogar andere Arrays. Arrays sind besonders nützlich, wenn es darum geht, geordnete Sammlungen von Daten zu repräsentieren.
In diesem Beispiel ist{ "mitarbeiter": [ {"name": "Max", "position": "Entwickler"}, {"name": "Julia", "position": "Designer"}, {"name": "Tom", "position": "Projektmanager"} ] }
mitarbeiter
ein Array von Objekten, wobei jedes Objekt einen Mitarbeiter darstellt. Dies ermöglicht es, eine Liste von Objekten mit derselben oder ähnlicher Struktur effizient zu speichern und zu verarbeiten. -
Detailierte Beispiele von adobe.com
-
-
Wie man JSON-Daten generiert.
Dieser Schritt ist entscheidend für die effektive Nutzung von JSON in Programmierprojekten.-
In JavaScript können JSON-Objekte genau wie jedes andere Objekt erstellt werden.
var jsonObject = {
"name": "John Braun",
"alter": 30,
"istAngestellt": true,
"addressen": [
{"strasseWohnen": "Hauptstr. 45 ", "city": "Bonn"},
{"strasseArbeit": "Kraftwerkstr. 12", "city": "Siegburg"}
]
};let jsonString = JSON.stringify(jsonObject); console.log(jsonString); // {"name":"John Beaun","alter":30,"istAngestellt":true}
-
Python verfügt über ein Paket namens json, das für die Arbeit mit JSON-Daten verwendet werden kann.
Konvertierung von Python nach JSON:
import json
# a Python object (dict):
x = {
"name": "John",
"age": 30,
"city": "New York"
}
# convert into JSON:
y = json.dumps(x)
# the result is a JSON string:
print( y )Konvertierung von JSON nach Python:
import json
# some JSON:
x = '{ "name":"John", "age":30, "city":"New York"}'
# parse x:
y = json.loads(x)
# the result is a Python dictionary:
print(y["age"]) -
Die Erzeugung von JSON in Java kann mit verschiedenen Bibliotheken erfolgen, wobei Jackson und Google Gson zu den beliebtesten gehören.
-
-
Methoden zum Parsen von JSON in verschiedenen Programmiersprachen
Das Parsen von JSON ist der Schritt, um die in JSON-Format vorliegenden Daten in einer für die Programmiersprache nutzbaren Form zu verwenden. Dieser Prozess wandelt den Text eines JSON-Dokuments in ein spezifisches Datenformat um, das von der jeweiligen Programmiersprache verstanden wird. Dabei wird der JSON-String analysiert und in eine Datenstruktur umgewandelt.-
- Eingabe: Der Prozess beginnt mit einem übermittelten JSON-String, der die Daten in Textform enthält.
- Verarbeitung: Ein Parser analysiert den String und wandelt ihn in die entsprechende Datenstruktur der Programmiersprache um (z.B. Objekte in JavaScript, Dictionaries in Python, Maps in Java).
- Ausgabe: Das Ergebnis ist eine native Datenstruktur, die in der Programmiersprache für Operationen wie Zugriff, Modifikation und Verarbeitung verwendet werden kann.
-
Diese Tabelle zeigt die grundlegenden Operationen für die Arbeit mit JSON-Daten in diesen drei Sprachen. Jede Sprache hat ihre eigenen Bibliotheken und Frameworks, die zusätzliche Funktionalitäten oder Kurzzeitmethoden für den Umgang mit JSON-Daten bieten können.
-
-
Praktische Beispiele für JSON in der Webentwicklung
Verwendung von JSON in Webanwendungen, wobei der Schwerpunkt darauf liegt, wie JSON zum Abrufen und Senden von Daten an einen Server verwendet wird, was ein grundlegender Aspekt der modernen Webentwicklung ist.-
Abrufen von Daten von einem Server
Beim Abrufen von Daten von einem Server wird eine Anfrage an eine URL gesendet und die Antwort verarbeitet. Die Antwort liegt oft im JSON-Format vor, das leicht in Webanwendungen integriert werden kann.
Verwenden der Fetch-API zum Abrufen von JSON-Daten
Die Fetch-API bietet eine JavaScript-Schnittstelle für den Zugriff auf und die Bearbeitung von Teilen der HTTP-Pipeline, z. B. Anfragen und Antworten. Sie ermöglicht die asynchrone Abfrage von Daten.
In diesem Beispiel wird fetch() verwendet, um Daten von "https://api.example.com/data" zu erhalten. Die Methode .then() übernimmt die Antwort und wandelt sie mit response.json() in JSON um, und dann wird eine weitere .then() zur Verarbeitung der Daten verwendet.fetch('https://api.example.com/data') .then(response => response.json()) // Converts the response to JSON .then(data => console.log(data)) // Handles the parsed JSON data .catch(error => console.error('Error:', error));
-
Senden von Daten an einen Server
Wenn Sie Daten an einen Server senden, müssen Sie oft JSON-Daten im Hauptteil einer Anfrage senden. Dies geschieht in der Regel mit der POST-Methode.
Verwenden der Fetch-API zum Senden von JSON-Daten
let data = { username: 'example' };
fetch('https://api.example.com/data', {
Methode: 'POST', // oder 'PUT'
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
})
.then(response => response.json())
.then(data => console.log('Erfolg:', data))
.catch((Fehler) => console.error('Fehler:', Fehler));
Hier senden wir die Daten als JSON an den Server. Wir verwenden JSON.stringify(), um das JavaScript-Objekt in einen JSON-String zu konvertieren. Der Header-Teil der Anfrage gibt an, dass das Body-Format JSON ist. -
Das Verständnis für das Abrufen und Senden von JSON-Daten ist entscheidend für die Interaktion mit APIs und die Erstellung dynamischer Webanwendungen, die auf Benutzereingaben reagieren und Daten von Servern anzeigen.
-
-
Wenn Sie sich mit Best Practices und häufigen Problemen mit JSON in der Webentwicklung beschäftigen, können Sie häufige Fallstricke vermeiden und sicherstellen, dass Ihre Anwendungen robust und effizient sind.
-
-
Die Erkundung von APIs, die JSON zurückgeben, ist eine spannende Möglichkeit, die Arbeit mit JSON zu üben und seine realen Anwendungen zu verstehen. APIs (Application Programming Interfaces) ermöglichen es Ihrer Anwendung, mit externen Diensten zu kommunizieren und auf deren Daten oder Funktionen zuzugreifen. Hier erfahren Sie, wie Sie loslegen können, und lernen einige beliebte APIs zum Üben kennen. 🌍🔌
Erste Schritte mit offenen APIs
Lesen Sie die API-Dokumentation:
Bevor Sie mit der Codierung beginnen, sollten Sie die API-Dokumentation gründlich lesen. Sie enthält wichtige Informationen wie die Basis-URL, Endpunkte, erforderliche Header und Parameter.
Authentifizierung:
Viele APIs erfordern eine Authentifizierung, die häufig in Form eines API-Schlüssels erfolgt. Stellen Sie sicher, dass Sie sich für die API angemeldet und Ihren Schlüssel erhalten haben.
Test-Tools:
Verwenden Sie Tools wie Postman oder Insomnia zum Testen von API-Anfragen, bevor Sie sie in Ihrem Code implementieren. Diese Tools bieten eine benutzerfreundliche Schnittstelle für die Erstellung von Anfragen und die Anzeige von Antworten.
Ratenbeschränkungen:
Achten Sie auf die von der API auferlegten Ratenbeschränkungen, um eine übermäßige Nutzung zu verhindern. Dies ist besonders bei Produktionsanwendungen wichtig, um Dienstunterbrechungen zu vermeiden.
Beliebte APIs für die Praxis
Hier sind einige APIs, die JSON-Daten zurückgeben und sich hervorragend zum Üben eignen:
Die Star Wars-API (SWAPI):
Liefert Daten über das Star Wars-Universum. Es ist eine unterhaltsame Möglichkeit, um mit APIs zu beginnen, ohne dass eine Authentifizierung erforderlich ist.
Beispiel für einen Endpunkt: https://swapi.dev/api/people/1/
OpenWeatherMap:
Bietet Wetterdaten für jeden Ort. Erfordert einen API-Schlüssel für den Zugriff, hat aber eine kostenlose Ebene für die grundlegende Nutzung.
Basis-URL: https://api.openweathermap.org/data/2.5/
Beispiel-Endpunkt: weather?q=Berlin&appid=YOUR_API_KEY
-
-
-
JavaScript and JSON Essentials - Second Edition
By : Bruno Joseph D'mello, Sai S Sriparasa
-