Eine Einführung in JSON

Einführung

JSON - kurz fürJavaScript Object Notation - ist ein Format zum Teilen von Daten. Wie der Name schon sagt, ist JSON von der JavaScript-Programmiersprache abgeleitet, steht jedoch für viele Sprachen zur Verfügung, darunter Python, Ruby, PHP und Java. JSON wird normalerweise wie der Name "Jason" ausgesprochen.

JSON verwendet die Erweiterung.json, wenn es alleine steht. Wenn es in einem anderen Dateiformat definiert ist (wie in.html), kann es in Anführungszeichen als JSON-Zeichenfolge angezeigt werden oder es kann ein Objekt sein, das einer Variablen zugewiesen ist. Dieses Format ist einfach zwischen Webserver und Client oder Browser zu übertragen.

JSON ist gut lesbar und leichtgewichtig. Es bietet eine gute Alternative zu XML und erfordert viel weniger Formatierung. In diesem Informationshandbuch werden Sie mit den Daten, die Sie in JSON-Dateien verwenden können, sowie mit der allgemeinen Struktur und Syntax dieses Formats vertraut gemacht.

Syntax und Struktur

Ein JSON-Objekt ist ein Schlüsselwert-Datenformat, das normalerweise in geschweiften Klammern dargestellt wird. Wenn Sie mit JSON arbeiten, werden JSON-Objekte wahrscheinlich in einer.json-Datei angezeigt. Sie können jedoch auch als JSON-Objekt oder Zeichenfolge im Kontext eines Programms vorhanden sein.

Ein JSON-Objekt sieht ungefähr so ​​aus:

{
  "first_name" : "Sammy",
  "last_name" : "Shark",
  "location" : "Ocean",
  "online" : true,
  "followers" : 987
}

Obwohl dies ein sehr kurzes Beispiel ist und JSON viele Zeilen lang sein kann, zeigt dies, dass das Format im Allgemeinen mit zwei geschweiften Klammern (oder geschweiften Klammern) eingerichtet ist, die an beiden Enden wie diese{ } aussehen, und mit Schlüssel-Wert-Paaren, die den Raum dazwischen füllen. Die meisten in JSON verwendeten Daten werden schließlich in einem JSON-Objekt gekapselt.

Schlüssel-Wert-Paare haben einen Doppelpunkt wie in"key" : "value". Jedes Schlüssel-Wert-Paar ist durch ein Komma getrennt, sodass die Mitte eines JSON folgendermaßen aussieht:"key" : "value", "key" : "value", "key": "value". In unserem obigen Beispiel ist das erste Schlüssel-Wert-Paar"first_name" : "Sammy".

JSONkeys befinden sich auf der linken Seite des Doppelpunkts. Sie müssen wie in"key" in doppelte Anführungszeichen gesetzt werden und können eine beliebige gültige Zeichenfolge sein. Innerhalb jedes Objekts müssen die Schlüssel eindeutig sein. Diese Schlüsselzeichenfolgencan enthalten Leerzeichen wie in"first name". Dies kann jedoch den Zugriff beim Programmieren erschweren. Verwenden Sie daher am besten Unterstriche wie in"first_name".

JSONvalues befinden sich rechts vom Doppelpunkt. Auf der granularen Ebene muss es sich um einen von 6 einfachen Datentypen handeln:

  • Streicher

  • zahlen

  • Objekte

  • Arrays

  • Boolesche Werte (wahr oder falsch)

  • null

Auf der breiteren Ebene können Werte auch aus den komplexen Datentypen des JSON-Objekts oder -Arrays bestehen, die innext section behandelt werden.

Jeder der Datentypen, die als Werte in JSON übergeben werden, behält seine eigene Syntax bei, sodass Zeichenfolgen in Anführungszeichen stehen, Zahlen jedoch nicht.

Obwohl in.json-Dateien das Format normalerweise über mehrere Zeilen erweitert wird, kann JSON auch in einer Zeile geschrieben werden.

{ "first_name" : "Sammy", "last_name": "Shark",  "online" : true, }

Dies ist in anderen Dateitypen oder bei einer JSON-Zeichenfolge häufiger der Fall.

Wenn Sie das JSON-Format in mehrere Zeilen schreiben, ist es häufig besser lesbar, insbesondere bei großen Datenmengen. Da JSON Leerzeichen zwischen den Elementen ignoriert, können Sie Ihre Doppelpunkte und Schlüssel-Wert-Paare ausräumen, um die Daten noch besser lesbar zu machen:

{
  "first_name"  :  "Sammy",
  "last_name"   :  "Shark",
  "online"      :  true
}

Es ist wichtig zu beachten, dass ein JSON-Objekt, obwohl es ähnlich aussieht, nicht dasselbe Format wie einJavaScript objecthat. Obwohl Sie Funktionen in JavaScript-Objekten verwenden können, können Sie sie in JSON nicht als Werte verwenden. Das wichtigste Merkmal von JSON ist, dass es leicht zwischen Programmiersprachen in einem Format übertragen werden kann, mit dem alle beteiligten Sprachen arbeiten können. JavaScript-Objekte können nur direkt über die JavaScript-Programmiersprache bearbeitet werden.

Bisher haben wir das JSON-Format in seinen einfachsten Begriffen betrachtet, aber JSON kann hierarchisch und komplex werden und aus verschachtelten Objekten und Arrays bestehen. Im nächsten Abschnitt werden wir uns mit komplexerem JSON befassen.

Arbeiten mit komplexen Typen in JSON

JSON kann neben verschachtelten Arrays auch verschachtelte Objekte im JSON-Format speichern. Diese Objekte und Arrays werden als den Schlüsseln zugewiesene Werte übergeben und bestehen in der Regel auch aus Schlüssel-Wert-Paaren.

Verschachtelte Objekte

In der folgendenusers.json-Datei wird für jeden der vier Benutzer ("sammy","jesse","drew","jamie") ein verschachteltes JSON-Objekt als übergeben Wert für jeden Benutzer mit eigenen verschachtelten Schlüsseln von"username" und"location", die sich auf jeden Benutzer beziehen. Das erste verschachtelte JSON-Objekt wird unten hervorgehoben.

users.json

{
  "sammy" : {
    "username"  : "SammyShark",
    "location"  : "Indian Ocean",
    "online"    : true,
    "followers" : 987
  },
  "jesse" : {
    "username"  : "JesseOctopus",
    "location"  : "Pacific Ocean",
    "online"    : false,
    "followers" : 432
  },
  "drew" : {
    "username"  : "DrewSquid",
    "location"  : "Atlantic Ocean",
    "online"    : false,
    "followers" : 321
  },
  "jamie" : {
    "username"  : "JamieMantisShrimp",
    "location"  : "Pacific Ocean",
    "online"    : true,
    "followers" : 654
  }
}

Im obigen Beispiel werden geschweifte Klammern verwendet, um ein verschachteltes JSON-Objekt mit zugehörigen Benutzernamen- und Standortdaten für jeden der vier Benutzer zu erstellen. Wie bei jedem anderen Wert werden auch bei der Verwendung von Objekten Kommas zum Trennen von Elementen verwendet.

Verschachtelte Arrays

Daten können auch mit JavaScript-Arrays, die als Wert übergeben werden, im JSON-Format verschachtelt werden. JavaScript verwendet eckige Klammern[ ] an beiden Enden seines Array-Typs. Arrays sind geordnete Sammlungen und können Werte verschiedener Datentypen enthalten.

Wir können ein Array verwenden, wenn wir es mit einer Vielzahl von Daten zu tun haben, die sich leicht gruppieren lassen, beispielsweise wenn einem einzelnen Benutzer verschiedene Websites und Social-Media-Profile zugeordnet sind.

Wenn das erste verschachtelte Array markiert ist, sieht ein Benutzerprofil für Sammy möglicherweise folgendermaßen aus:

user_profile.json

{
  "first_name" : "Sammy",
  "last_name" : "Shark",
  "location" : "Ocean",
  "websites" : [
    {
      "description" : "work",
      "URL" : "https://www.digitalocean.com/"
    },
    {
      "desciption" : "tutorials",
      "URL" : "https://www.digitalocean.com/community/tutorials"
    }
  ],
  "social_media" : [
    {
      "description" : "twitter",
      "link" : "https://twitter.com/digitalocean"
    },
    {
      "description" : "facebook",
      "link" : "https://www.facebook.com/DigitalOceanCloudHosting"
    },
    {
      "description" : "github",
      "link" : "https://github.com/digitalocean"
    }
  ]
}

Der Schlüssel"websites"und der Schlüssel"social_media"verwenden jeweils ein Array, um Informationen zu Sammys 2 Website-Links und 3 Social-Media-Profil-Links zu verschachteln. Wir wissen, dass dies Arrays sind, da eckige Klammern verwendet werden.

Durch die Verwendung der Verschachtelung in unserem JSON-Format können wir mit komplizierteren und hierarchischeren Daten arbeiten.

Vergleich zu XML

XML oder eXtensibleMarkupLanguage ist eine Möglichkeit, zugängliche Daten zu speichern, die sowohl von Menschen als auch von Maschinen gelesen werden können. Das XML-Format kann in vielen Programmiersprachen verwendet werden.

In vielerlei Hinsicht ist XML JSON sehr ähnlich, erfordert jedoch viel mehr Text, ist also länger und zeitaufwendiger beim Lesen und Schreiben. XML muss mit einem XML-Parser analysiert werden, JSON kann jedoch mit einer Standardfunktion analysiert werden. Im Gegensatz zu JSON kann XML auch keine Arrays verwenden.

Wir sehen uns ein Beispiel für das XML-Format an und sehen uns dann dieselben Daten an, die in JSON gerendert wurden.

users.xml


    
        SammyShark Indian Ocean
    
    
        JesseOctopus Pacific Ocean
    
    
        DrewSquir Atlantic Ocean
    
    
        JamieMantisShrimp Pacific Ocean
    

users.json

{"users": [
  {"username" : "SammyShark", "location" : "Indian Ocean"},
  {"username" : "JesseOctopus", "location" : "Pacific Ocean"},
  {"username" : "DrewSquid", "location" : "Atlantic Ocean"},
  {"username" : "JamieMantisShrimp", "location" : "Pacific Ocean"}
] }

Wir sehen, dass JSON viel kompakter ist und keine End-Tags benötigt, während XML dies tut. Darüber hinaus verwendet XML kein Array wie in diesem Beispiel für JSON (was Sie durch die Verwendung eckiger Klammern erkennen können).

Wenn Sie mit HTML vertraut sind, werden Sie feststellen, dass XML in der Verwendung von Tags ziemlich ähnlich aussieht. Während JSON schlanker und weniger ausführlich als XML ist und in vielen Situationen, einschließlich AJAX-Anwendungen, schnell verwendet werden kann, sollten Sie zunächst die Art des Projekts verstehen, an dem Sie arbeiten, bevor Sie sich für eine Datenstruktur entscheiden.

Ressourcen

JSON ist ein natürliches Format zur Verwendung in JavaScript und verfügt über zahlreiche Implementierungen, die in vielen gängigen Programmiersprachen verwendet werden können. Die vollständige Sprachunterstützung finden Sie auf der Website „http://www.json.org/[Introducing JSON]“. DiejQuery library können sich auch um Kompatibilität und Analyse kümmern.

In den meisten Fällen schreiben Sie kein reines JSON, sondern beziehen es aus Datenquellen oder konvertieren andere Datendateien in JSON. Mit dem Open-Source-ToolMr. Data Converter können Sie CSV- oder tabulatorgetrennte Daten, die Sie möglicherweise in Tabellenkalkulationsprogrammen finden, in JSON konvertieren. Sie können XML mit den von Creative Commons lizenziertenutilities-online.info site in JSON konvertieren und umgekehrt. Wenn Sie automatisierte Tools verwenden, sollten Sie Ihre Ergebnisse überprüfen und Redundanzen nach Bedarf entfernen.

Wenn Sie andere Datentypen in JSON übersetzen oder eigene erstellen, können Sie Ihren JSON mitJSONLint validieren und Ihren JSON in einem Webentwicklungskontext mitJSFiddle testen.

Fazit

JSON ist ein kompaktes Format, mit dem Sie Daten auf einfache Weise freigeben, speichern und bearbeiten können. Als Format hat JSON eine verstärkte Unterstützung in APIs erfahren, einschließlich derTwitter API.

Da Sie wahrscheinlich keine eigenen.json-Dateien erstellen, sondern diese aus anderen Quellen beziehen, ist es wichtig, weniger über die Struktur von JSON nachzudenken als vielmehr darüber, wie Sie JSON in Ihren Programmen am besten verwenden können.