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
Linda HamiltonOriginal
2024-12-13 14:18:14465Durchsuche

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

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>';
  });
}

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; }

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!

json for using function
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
Vorheriger Artikel:Wie kann ich ungültige JavaScript-Datumsinstanzen zuverlässig erkennen?Nächster Artikel:Wie kann ich ungültige JavaScript-Datumsinstanzen zuverlässig erkennen?

In Verbindung stehende Artikel

Mehr sehen