Heim >Web-Frontend >js-Tutorial >Wie kann ich entspanntes JSON sicher analysieren, ohne „eval' zu verwenden?

Wie kann ich entspanntes JSON sicher analysieren, ohne „eval' zu verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 05:44:02607Durchsuche

How to Safely Parse Relaxed JSON Without Using `eval`?

Sicheres Parsen von entspanntem JSON

Das Parsen von „relaxtem“ JSON ohne Rückgriff auf die potenziell gefährliche Auswertungsfunktion ist eine häufige Herausforderung bei der Arbeit mit JSON-Daten Dies entspricht möglicherweise nicht der strengen JSON-Syntax. Während JSON.parse() erfordert, dass Schlüssel in Anführungszeichen gesetzt werden, erfordern einige Szenarien das Parsen von JSON mit nicht in Anführungszeichen gesetzten Schlüsseln aus Bequemlichkeits- oder Legacy-Gründen.

Ein Ansatz für den sicheren Umgang mit „entspanntem“ JSON besteht darin, das JSON vor dem Parsen zu bereinigen. Mithilfe einer Ersetzung durch reguläre Ausdrücke können Sie nicht in Anführungszeichen gesetzte Schlüssel in solche umwandeln, während der Rest der JSON-Struktur erhalten bleibt.

var badJson = "{muh: 2}";
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": ');

In diesem Beispiel sucht der reguläre Ausdruck nach nicht in Anführungszeichen gesetzten Schlüsseln, die optional von einfachen oder doppelten Anführungszeichen umgeben sind , gefolgt von einem Doppelpunkt. Anschließend werden die Übereinstimmungen durch die korrekte Schlüsselsyntax in Anführungszeichen ersetzt, um sicherzustellen, dass die JSON-Zeichenfolge nun dem richtigen JSON-Format entspricht.

Sobald die JSON-Zeichenfolge bereinigt ist, können Sie sie sicher mit JSON.parse():

JSON.parse(correctJson);
Mit dieser Methode können Sie „entspanntes“ JSON mit Schlüsseln ohne Anführungszeichen analysieren und gleichzeitig die Sicherheit und Zuverlässigkeit der JSON-Analyse beibehalten, ohne dass benutzerdefinierte Parser oder unsichere Techniken wie eval erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich entspanntes JSON sicher analysieren, ohne „eval' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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