Skip to content

formatJson

JSON را خوانا می‌آراید. هم شیء می‌پذیرد و هم رشتهٔ JSON‌ای که بخواهید دوباره بیارایید.

API

formatJson(value, onError?, indent?)

پارامترتوضیحنوعپیش‌فرض
valueشیء، یا رشتهٔ JSON (گیومهٔ تکی هم پذیرفته می‌شود)string | objectالزامی
onErrorبا خطای تجزیه یا سریال‌سازی فراخوانده می‌شود(e: Error) => voidکاری نمی‌کند
indentتعداد فاصله در هر ترازnumber4

رشتهٔ آراسته را برمی‌گرداند، و اگر ورودی تجزیه‌پذیر نباشد ''.

نمونه

js
import { formatJson } from 'ranuts';

formatJson({ a: 1, b: [2, 3] });
formatJson("{'a': 1}"); // گیومهٔ تکی پذیرفته می‌شود
formatJson({ a: 1 }, undefined, 2); // تورفتگی دو فاصله
formatJson('nope', (e) => console.warn(e)); // '' برمی‌گردد و خطا به فراخوان می‌رسد

یادداشت‌ها

  1. رشتهٔ ورودی بازتجزیه می‌شود، نه اینکه همان‌طور پس داده شود. اینچنین درستی‌اش وارسی و چیدمانش یکدست می‌شود، به‌جای اعتماد به فاصله‌گذاری فراخواننده.
  2. خطاها گزارش می‌شوند، هرگز پرتاب نمی‌شوند. JSON نامعتبر، ساختارهای چرخه‌ای و مقدارهایی که JSON.stringify نمی‌تواند بنماید، همگی '' برمی‌گردانند و onError را صدا می‌زنند.

در ۰٫۳ از نو نوشته شد

پیش‌تر این یک آراینده دست‌ساز حدوداً ۹۰ خطی بود که چیدمان را با تزریق خط تازه از راه عبارت باقاعده گرد هر آکولاد و کروشه و ویرگول بازمی‌ساخت و سپس می‌کوشید خرابی درون رشته‌ها را با شمردن گیومه‌ها در هر خط جبران کند. گیومه‌های گریخته را درست نمی‌فهمید و آکولاد یا ویرگولِ درون مقدار یک رشته را ساختار می‌پنداشت، از این رو { css: 'a { color: red, }' } خراب بیرون می‌آمد. اکنون JSON.stringify است با یک تجزیهٔ سهل‌گیر در جلوی آن: درست، و به‌مراتب تندتر. فاصله‌گذاری خروجی همان JSON.stringify است، نه چیدمان سفارشی پیشین.

منتشرشده تحت مجوز MIT.