Rumah > hujung hadapan web > tutorial js > Bagaimanakah saya boleh meningkatkan kebolehbacaan JSON menggunakan pencetakan cantik dan penyerlahan sintaks?

Bagaimanakah saya boleh meningkatkan kebolehbacaan JSON menggunakan pencetakan cantik dan penyerlahan sintaks?

Linda Hamilton
Lepaskan: 2024-12-13 14:18:14
asal
464 orang telah melayarinya

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

JSON Pencetakan Cantik untuk Kebolehbacaan Manusia

JSON pencetakan cantik boleh meningkatkan kebolehbacaan dengan memperkenalkan lekukan, ruang putih dan kemungkinan warna atau gaya fon. Berikut ialah dua pendekatan:

Percetakan Cantik Terbina dalam

Fungsi JSON.stringify() JavaScript menyediakan keupayaan pencetakan cantik asli. Lulus hujah ketiga sebagai tahap jarak:

var str = JSON.stringify(obj, null, 2); // spacing level = 2
Salin selepas log masuk

Penyertaan Sintaks dengan Ungkapan Biasa

Untuk penyerlahan sintaks, anda boleh menggunakan ungkapan biasa untuk mewarnakan JSON yang berbeza elemen:

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>';
  });
}
Salin selepas log masuk

Lengkap Contoh

Berikut ialah coretan penuh yang menunjukkan kedua-dua kaedah:

<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; }
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah saya boleh meningkatkan kebolehbacaan JSON menggunakan pencetakan cantik dan penyerlahan sintaks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Artikel sebelumnya:Bagaimanakah Saya Boleh Mengesan Contoh Tarikh JavaScript Tidak Sah dengan Amanah? Artikel seterusnya:Bagaimanakah Saya Boleh Mengendalikan Gelagat Butang Belakang Penyemak Imbas dengan Berkesan dalam JavaScript?
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Isu terkini
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan