JSON Syntax
als Präsentation ▻Mit JSON kann man Datenstrukturen aus null, true, false, Zahlen, Strings, Arrays und Objekten in Javscript deklarativ anschreiben.
▻JSON ist ein Teil der Javascript Syntax, eine deklarative Art Datenstrukturen zu definieren.
(Folgende Beispiel für JSON wurde aus der Graph API von Facebook abgerufen und wird hier etwas verkürzt dargestellt, siehe original)
Javascript Code JSON Beispiel
var o = { "about": "Ein Medieninformatik Studiengang an der FH Salzburg", "category_list": [ { "id": "151676848220295", "name": "Education" } ], "is_published": true };
Mit dieser Schreibweise wird ein Objekt mit drei Eigenschaften definiert, die zweite Eigenschaft hat als Wert ein Array das ein weiteres Objekt enthält.
▻Man hätte die selbe Datenstruktur auch imperativ aufbauen können:
Javascript Code ohne JSON
var o = new Object(); o.about = "Ein Medieninformatik Studiengang an der FH Salzburg"; o.category_list = new Array(); o.category_list[0] = new Object() o.category_list[0].id = "151676848220295"; o.category_list[0].name = "Education";
Die deklarative Schreibweise in JSON ist aber einfacher lesbar
▻JSON und Javascript
Für den Datenaustausch mit JSON muss die JSON-Schreibweise als String ausgegeben werden, bzw. ein String der JSON-Schreibweise enthält in eine Javascript Datenstruktur zurück verwandelt werden. Die Umwandlung in einen String nennt man auch “Serialisierung”→.
Javascript Code (De)Serialisierung von JSON
string = JSON.stringify( o ); o = JSON.parse(string);
Es gäbe noch eine zweite Art den String in eine Javscript-Datenstruktur
umzuwandeln: Der Javascript-Befehl eval
interpretiert einen String
als Javascript Code und führt das Programm aus.
Javascript Code eval
json_string = "{ 'dies': 'und das' }"; eval( "o = " + json_string); console.log(o);
In diesem Beispiel ist ganz klar was passiert - weil json_string
ja
lokal definier wird. Für die Behandlung von unbekannten Daten ist eval
nicht geeignet. Wir wollen ja nur den Datenaustausch ermöglichen, und nicht,
dass beliebiger Javascript Code ausgeführt wird.
Referenz
Kapitel
- Das Web Und Html
- Css
- Css Layout
- Urls
- Formulare
- Javascript Dom
- Jquery
- Kommandozeile
- Git
- Http
- Php Vorbereitung
- Php
- Php Db Lesen
- Session
- Php Db Schreiben
- Php Db Optimierung
- Grafik
- Javascript
- Applied Jquery And Css
- Json
- Xml
- Security
- Injection
- Authentifizierung und Session-Management
- Cross Site Scripting (XSS)
- Unsichere direkte Objektreferenzen
- Sicherheitsrelevante Fehlkonfiguration
- Verlust der Vertraulichkeit sensibler Daten
- Fehlerhafte Autorisierung auf Anwendungsebene
- Cross-Site Request Forgery (CSRF)
- Nutzung von Komponenten mit bekannten Schwachstellen
- Ungeprüfte Um- und Weiterleitungen
- Wordpress
- Apache
- Advanced Javascript
- Qualitaet