Heim > Web-Frontend > js-Tutorial > Hauptteil

JSON-Erweiterungen zum Schreiben von Konfigurationsdateien und zum Parsen von Daten

Susan Sarandon
Freigeben: 2024-11-07 00:29:02
Original
1020 Leute haben es durchsucht

JSON Extensions for writing config files and parsing data

JSON ist ein recht einfaches Format, das es einfach zu verwenden, zu verstehen und zu analysieren macht.
Aber manchmal braucht man etwas mehr als das. Schauen wir uns einige gängige JSON-Erweiterungen an.

EJSON

Erweitertes JSON ist genau das, wonach es sich anhört. Dieser JSON-Dialekt unterstützt zusätzliche Datentypen wie Datumsangaben und ermöglicht Ihnen sogar das Hinzufügen eigener Typen.

Hier ist ein Beispiel, das den Unterschied zwischen regulärem JSON und EJSON zeigt, wenn es um die Serialisierung und erneute Analyse von Objekten mit Datumsangaben geht.

const EJSON = require('ejson')

const event = {
  name: 'test',
  created_at: new Date()
}

const stingifiedJSON = JSON.stringify(event)
const stingifiedEJSON = EJSON.stringify(event)

// stringified
console.log(stingifiedJSON) // {"name":"test","created_at":"2024-11-06T00:00:00Z"}
console.log(stingifiedEJSON) // {"name":"test","created_at":{"$date":1730851200000}}

// re-parsed
console.log(typeof JSON.parse(stingifiedJSON).created_at) // string
console.log(EJSON.parse(stingifiedEJSON).created_at instanceof Date) // true
Nach dem Login kopieren

Dies ist äußerst nützlich, um serialisierte Daten erneut zu analysieren, beispielsweise wenn sie über das Netzwerk gesendet werden.
EJSON ist das, was MongoDB unter der Haube verwendet (zusätzlich zu BSON, einem Binärformat von JSON).

Von den in diesem Artikel aufgeführten JSON-Erweiterungen ist dies die einzige, die auch normales JSON analysieren kann!

NDJSON

Durch Zeilenumbrüche getrenntes JSON wird häufig zum Streamen jeweils eines JSON-Objekts verwendet.

So sieht es aus:

{"name":"test","created_at":"2024-11-02T00:00:00Z"}
{"name":"test 2","created_at":"2024-11-04T00:00:00Z"}
{"name":"test 3","created_at":"2024-11-06T00:00:00Z"}
Nach dem Login kopieren

Der Unterschied zu regulärem JSON besteht darin, dass die Daten nicht in ein Array eingeschlossen werden und dass nach jeder Zeile keine Kommas stehen (da diese durch Zeilenumbrüche getrennt sind). Dies macht es zu einem perfekten Kandidaten für das Streaming.

Abgesehen vom Streaming von JSON habe ich auch gesehen, dass dieses Format (zusammen mit EJSON) in NoSQL-Clients zum Exportieren und Importieren von Dokumenten verwendet wird.

JSONC / JSON5

Für die nächste gibt es eine Vielzahl von Implementierungen, von denen jede ihre eigene Note verleiht. Schauen wir uns JSON5 an, da es das vollständigste ist.

Sie alle versuchen das gleiche Ziel zu erreichen: ein für Menschen lesbares, gelockertes JSON-Format zur Verwaltung von Konfigurationsdateien.

Mit JSON5 können Sie unter anderem Kommentare, nachgestellte Kommas, Zeilenumbrüche und Anführungszeichen hinzufügen.

{
  // You can add comments!!
  unquoted: '< unquoted keys!',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Supports line breaks!\
No \n's!",
}
Nach dem Login kopieren

Wie Sie sehen, gibt es JSON-Erweiterungen in allen Formen und Größen. Einige sind für die Verwendung durch Anwendungen gedacht, andere ermöglichen es Entwicklern, einfacher Konfigurationsdateien zu erstellen.
Wenn Sie das nächste Mal JSON serialisieren/parsen müssen, prüfen Sie, ob eine dieser Erweiterungen für Ihren Anwendungsfall sinnvoll ist!

Das obige ist der detaillierte Inhalt vonJSON-Erweiterungen zum Schreiben von Konfigurationsdateien und zum Parsen von Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage