Heim >Web-Frontend >js-Tutorial >Wie analysiere ich einen JSON-String mit einfachen Anführungszeichen anstelle von doppelten Anführungszeichen?

Wie analysiere ich einen JSON-String mit einfachen Anführungszeichen anstelle von doppelten Anführungszeichen?

Susan Sarandon
Susan SarandonOriginal
2024-12-01 00:55:12139Durchsuche

How to Parse a JSON String with Single Quotes Instead of Double Quotes?

Zeichenfolge als JSON mit einfachen Anführungszeichen analysieren?

Beim Versuch, eine Zeichenfolge als JSON zu analysieren, können Probleme auftreten, wenn die Zeichenfolge einzelne Anführungszeichen enthält Anführungszeichen anstelle der erforderlichen doppelten Anführungszeichen.

Problem Aussage:

Betrachten Sie die Beispielzeichenfolge str = {'a':1}, bei der einfache Anführungszeichen um den Objektschlüssel verwendet werden. Das Parsen dieser Zeichenfolge mit JSON.parse(str) führt zur Ausnahme Uncaught SyntaxError: Unexpected token '…'.

Lösung:

Der JSON-Standard schreibt diese Zeichenfolgen vor müssen in doppelte Anführungszeichen gesetzt werden. Das Parsen einer Zeichenfolge mit einfachen Anführungszeichen ist nicht erfolgreich. Um dieses Problem zu lösen, gibt es zwei mögliche Ansätze:

  • Ersetzen Sie einfache Anführungszeichen durch doppelte Anführungszeichen: Wenn die Struktur des JSON klar definiert ist und keine maskierten einfachen Anführungszeichen enthält Innerhalb von Zeichenfolgen (was normalerweise für JSON nicht gültig ist) können Sie die Methode „replace“ verwenden, um alle einfachen Anführungszeichen durch doppelte zu ersetzen Anführungszeichen:
JSON.parse(str.replace(/'/g, '"'));
  • Manuell analysieren: Wenn der JSON komplex ist und möglicherweise maskierte einfache Anführungszeichen in Zeichenfolgen enthält, wird eine manuelle Analyse empfohlen. Sie können die Zeichenfolge durchlaufen, die verschiedenen Token identifizieren (z. B. Schlüssel, Werte, Kommas, geschweifte Klammern) und das JSON-Objekt inkrementell erstellen.

Das obige ist der detaillierte Inhalt vonWie analysiere ich einen JSON-String mit einfachen Anführungszeichen anstelle von doppelten Anführungszeichen?. 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