Heim > Web-Frontend > js-Tutorial > Wie kann ich die Lesbarkeit von JSON mithilfe von Pretty-Printing und Syntaxhervorhebung verbessern?

Wie kann ich die Lesbarkeit von JSON mithilfe von Pretty-Printing und Syntaxhervorhebung verbessern?

Linda Hamilton
Freigeben: 2024-12-13 14:18:14
Original
464 Leute haben es durchsucht

How can I improve JSON readability using pretty-printing and syntax highlighting?

Pretty-Printing JSON für menschliche Lesbarkeit

Pretty-Printing JSON kann die Lesbarkeit verbessern, indem Einrückungen, Leerzeichen und möglicherweise Farben oder Schriftarten eingeführt werden. Hier sind zwei Ansätze:

Integriertes Pretty-Printing

JavaScripts JSON.stringify()-Funktion bietet native Pretty-Printing-Funktionen. Übergeben Sie das dritte Argument als Abstandsebene:

var str = JSON.stringify(obj, null, 2); // spacing level = 2
Nach dem Login kopieren

Syntaxhervorhebung mit regulären Ausdrücken

Für die Syntaxhervorhebung können Sie reguläre Ausdrücke verwenden, um verschiedene JSON-Dateien farblich zu kennzeichnen Elemente:

function syntaxHighlight(json) {
  json = json.replace(/&amp;/g, '&amp;amp;').replace(/</g, '&amp;lt;').replace(/>/g, '&amp;gt;');
  return json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
    var cls = 'number';
    if (/^"/.test(match)) {
      if (/:$/.test(match)) {
        cls = 'key';
      } else {
        cls = 'string';
      }
    } else if (/true|false/.test(match)) {
      cls = 'boolean';
    } else if (/null/.test(match)) {
      cls = 'null';
    }
    return '<span class="' + cls + '">' + match + '</span>';
  });
}
Nach dem Login kopieren

Vollständig Beispiel

Hier ist ein vollständiger Ausschnitt, der beide Methoden demonstriert:

<div class="snippet" data-lang="js" data-hide="true" data-console="false" data-babel="false">
  <div class="snippet-code snippet-currently-hidden">
    <pre class="snippet-code-js lang-js prettyprint-override">function output(inp) {
        document.body.appendChild(document.createElement('pre')).innerHTML = inp;
    }

    function syntaxHighlight(json) {
        json = json.replace(/&amp;/g, '&amp;amp;').replace(/</g, '&amp;lt;').replace(/>/g, '&amp;gt;');
        return json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
            var cls = 'number';
            if (/^"/.test(match)) {
                if (/:$/.test(match)) {
                    cls = 'key';
                } else {
                    cls = 'string';
                }
            } else if (/true|false/.test(match)) {
                cls = 'boolean';
            } else if (/null/.test(match)) {
                cls = 'null';
            }
            return '<span class="' + cls + '">' + match + '</span>';
        });
    }

    var obj = {a:1, 'b':'foo', c:[false,'false',null, 'null', {d:{e:1.3e5,f:'1.3e5'}}]};
    var str = JSON.stringify(obj, undefined, 4);

    output(str);
    output(syntaxHighlight(str));
pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }
.string { color: green; }
.number { color: darkorange; }
.boolean { color: blue; }
.null { color: magenta; }
.key { color: red; }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die Lesbarkeit von JSON mithilfe von Pretty-Printing und Syntaxhervorhebung verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Vorheriger Artikel:Wie kann ich ungültige JavaScript-Datumsinstanzen zuverlässig erkennen? Nächster Artikel:Wie kann ich das Verhalten der Browser-Zurück-Schaltfläche in JavaScript effektiv handhaben?
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
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage