formatJson
JSON را خوانا میآراید. هم شیء میپذیرد و هم رشتهٔ JSONای که بخواهید دوباره بیارایید.
API
formatJson(value, onError?, indent?)
| پارامتر | توضیح | نوع | پیشفرض |
|---|---|---|---|
value | شیء، یا رشتهٔ JSON (گیومهٔ تکی هم پذیرفته میشود) | string | object | الزامی |
onError | با خطای تجزیه یا سریالسازی فراخوانده میشود | (e: Error) => void | کاری نمیکند |
indent | تعداد فاصله در هر تراز | number | 4 |
رشتهٔ آراسته را برمیگرداند، و اگر ورودی تجزیهپذیر نباشد ''.
نمونه
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)); // '' برمیگردد و خطا به فراخوان میرسدیادداشتها
- رشتهٔ ورودی بازتجزیه میشود، نه اینکه همانطور پس داده شود. اینچنین درستیاش وارسی و چیدمانش یکدست میشود، بهجای اعتماد به فاصلهگذاری فراخواننده.
- خطاها گزارش میشوند، هرگز پرتاب نمیشوند. JSON نامعتبر، ساختارهای چرخهای و مقدارهایی که
JSON.stringifyنمیتواند بنماید، همگی''برمیگردانند وonErrorرا صدا میزنند.
در ۰٫۳ از نو نوشته شد
پیشتر این یک آراینده دستساز حدوداً ۹۰ خطی بود که چیدمان را با تزریق خط تازه از راه عبارت باقاعده گرد هر آکولاد و کروشه و ویرگول بازمیساخت و سپس میکوشید خرابی درون رشتهها را با شمردن گیومهها در هر خط جبران کند. گیومههای گریخته را درست نمیفهمید و آکولاد یا ویرگولِ درون مقدار یک رشته را ساختار میپنداشت، از این رو { css: 'a { color: red, }' } خراب بیرون میآمد. اکنون JSON.stringify است با یک تجزیهٔ سهلگیر در جلوی آن: درست، و بهمراتب تندتر. فاصلهگذاری خروجی همان JSON.stringify است، نه چیدمان سفارشی پیشین.