# تنسيق JSON والتحقق منه

> تنسيق JSON والتحقق منه وضغطه عبر الإنترنت. فحص فوري للأخطاء مع السطر والعمود، وإصلاح الفواصل الزائدة وعلامات الاقتباس المفردة بنقرة، مع حفظ الأرقام الكبيرة.

URL: https://acrafto.com/ar/json-formatter-validator/  
Updated: 2026-10-03

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

الصق أي JSON في الحقل أعلاه، وستتولى أداة تنسيق JSON والتحقق منه (JSON Formatter & Validator) فحصه أثناء الكتابة. يُعرض الإدخال الصالح بتنسيق مقروء مع المسافة البادئة التي تختارها، أو يُضغط في سطر واحد. أما الإدخال غير الصالح فيحصل على رسالة خطأ دقيقة تتضمن رقم السطر والعمود ومقتطفًا مميزًا، وعلى إصلاح بنقرة واحدة في حالة الأخطاء الشائعة. يعمل كل شيء في متصفحك، فلا تغادر استجابات API وملفات الإعداد والبيانات المصدّرة جهازك.

## ما الذي تفعله أداة تنسيق JSON هذه

- **تنسيق JSON وتجميله (Beautify)** بمسافتين أو 4 مسافات أو علامات جدولة (Tab). يحتفظ الناتج بالترتيب الأصلي للمفاتيح ما لم تفعّل خيار *ترتيب المفاتيح*.
- **ضغط JSON (Minify)** بحذف كل المسافات وفواصل الأسطر. يوضح مؤشر الحجم أسفل النتيجة عدد البايتات التي وفّرتها.
- **التحقق من JSON** مباشرة وفق [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259)، وهو معيار JSON الحالي. يتحول سطر الحالة إلى اللون الأخضر لحظة يصبح المستند صحيحًا.
- **إصلاح الأخطاء الشائعة** تلقائيًا، ومنها الفواصل الزائدة وعلامات الاقتباس المفردة والمفاتيح غير المقتبسة والتعليقات وقيم Python مثل `True` و`None` و`NaN`، والأرقام مثل `.5` أو `+1`.
- **فتح الملفات** بزر *فتح ملف* أو بسحب ملف `.json` وإفلاته في حقل الإدخال، ثم تنزيل النتيجة أو إعادتها إلى الإدخال لمعالجة أخرى.

## لماذا تهم رسالة الخطأ أكثر من اللون الأحمر

تكتفي معظم أدوات التحقق عبر الإنترنت بإخبارك أن هناك خطأ ما. والمتصفحات ليست أفضل حالًا، إذ تعرض `JSON.parse` في Chrome الرسالة `Unexpected token } in JSON at position 148`، بينما يقول Firefox `expected property name or '}'`، ولا يخبرك أي منهما بالسطر الذي يجب أن تنظر إليه. تستخدم هذه الأداة محللًا خاصًا بها يتذكر موضع بداية كل رمز. وعندما يتوقف، تحصل على رقم السطر والعمود، ومقتطف من ذلك السطر مع علامة ^ تحت الحرف المسبب للمشكلة، وتلميح بلغة واضحة مثل *على الأرجح تنقص فاصلة بين خاصيتين*. وينقل زر *الانتقال إلى الخطأ* المؤشر مباشرة إلى ذلك الموضع في حقل الإدخال.

أكثر الأخطاء التي نراها في المستندات الملصقة:

| الإدخال | المشكلة | JSON الصحيح |
| --- | --- | --- |
| `{'name': 'Ada'}` | علامات اقتباس مفردة | `{"name": "Ada"}` |
| `{name: "Ada"}` | مفتاح غير مقتبس | `{"name": "Ada"}` |
| `[1, 2, 3,]` | فاصلة زائدة | `[1, 2, 3]` |
| `{"a": 1 "b": 2}` | فاصلة مفقودة | `{"a": 1, "b": 2}` |
| `{"ok": True}` | قيمة من Python | `{"ok": true}` |
| `{"x": 007}` | صفر بادئ | `{"x": 7}` أو `{"x": "007"}` |
| `// comment` | تعليق | غير مسموح به في JSON |

يصلح زر *أصلحه لي* كل هذه الأخطاء باستثناء الفاصلة المفقودة والصفر البادئ. الإصلاح متحفظ عن قصد، فهو لا يخمّن أبدًا موضع الفاصلة المفقودة، لأن إدراجها في المكان الخطأ يغيّر معنى البيانات، وقد يُقصد بـ `007` الرقم 7 أو رمز ما. في هذه الحالات تحصل على الموضع الدقيق بدلًا من الإصلاح.

## الأرقام الكبيرة وترتيب المفاتيح وأشياء أخرى تتلف عادة

تعمل كثير من أدوات التنسيق باستدعاء `JSON.parse` ثم `JSON.stringify`. وهذه الرحلة ذهابًا وإيابًا تُتلف البيانات دون أي تنبيه. فمعرّف Twitter أو Snowflake مثل `1234567890123456789` يتجاوز حد 2^53 لأرقام JavaScript ويعود على شكل `1234567890123456800`. وتتحول القيمة `1.0` إلى `1`، و`1e3` إلى `1000`. أما أداة تنسيق JSON هذه فلا تحوّل الأرقام أبدًا إلى أعداد ذات فاصلة عائمة (floating point)، بل تنسخ كل قيمة حرفية كما كُتبت تمامًا، فيكون الناتج إعادة تنسيق أمينة للإدخال وليس إعادة تفسير له. وينطبق الأمر نفسه على تسلسلات الهروب داخل السلاسل النصية، فـ `"\u00e9"` تبقى `"\u00e9"` ولا تتحول إلى `"é"`.

يُحفظ ترتيب المفاتيح أيضًا. تنص مواصفة JSON على أن أعضاء الكائن غير مرتبة، لكن ملفات الإعداد وبيانات الاختبار ومراجعات الكود تكون أسهل قراءة بكثير عندما يكون الترتيب ثابتًا. وإذا كنت تفضل صيغة موحدة، مثلًا لمقارنة استجابتين من API في أداة مقارنة الفروق (diff)، ففعّل *ترتيب المفاتيح* وسيعرض المستندان خصائصهما أبجديًا في كل مستوى من مستويات التداخل.

## تنسيق JSON أم ضغط JSON: متى تستخدم كلًا منهما

JSON المنسق موجّه للبشر. استخدمه عندما تراجع استجابة API، أو تكتب ملف `package.json` أو `tsconfig.json` أو مستند OpenAPI، أو عندما تخزّن بيانات اختبار في مستودع يجب أن يعرض فيه كل فرق تغييرًا واحدًا في كل سطر. المسافتان هما العرف السائد في عالم JavaScript، والمسافات الأربع شائعة في مشاريع Python و.NET، أما علامات الجدولة فتتيح لكل قارئ اختيار العرض الذي يناسبه.

JSON المضغوط موجّه للآلات. تشكّل المسافات البيضاء عادة من 20 إلى 40 بالمئة من المستند المنسق، لذا فإن حذفها يقلّص البيانات المرسلة إلى المتصفحات، والقيم المخزنة في Redis أو في عمود قاعدة بيانات، وسمات `data-*` المضمنة في HTML. يقلّص gzip جزءًا من هذا الفرق، لكن النسخة المضغوطة تبقى بعد gzip أصغر حجمًا. ويعرض مؤشر الحجم أسفل النتيجة الفرق الدقيق لمستندك.

## التعامل مع JSON في الطرفية والمحررات

للملفات التي تعالجها بشكل متكرر، تكون أداة سطر الأوامر أسرع من أي موقع ويب. يقوم `jq . file.json` بتنسيق الملف، و`jq -c . file.json` بضغطه، ويعمل `python -m json.tool file.json` في أي مكان يتوفر فيه Python. ويُنسّق Visual Studio Code ملفات JSON بالاختصار Shift+Alt+F، ويتحقق منها مقابل مخطط (schema) عند إضافة خاصية `$schema`. أما هذه الصفحة فهي للحالات الأخرى، مثل استجابة منسوخة من تبويب الشبكة (Network)، أو سطر من سجل، أو مقتطف إعدادات من ويكي، أو فحص سريع على جهاز لا يمكنك تثبيت أي شيء عليه.

أدوات ذات صلة على هذا الموقع: [أداة ترميز وفك ترميز Base64](https://acrafto.com/ar/base64-encoder-decoder/) تفك ترميز جزء البيانات (payload) في رمز JWT، وهو JSON مرمّز بصيغة Base64url. ويحوّل [محول وقت يونكس](https://acrafto.com/ar/unix-timestamp-converter/) أرقام `createdAt` الموجودة في معظم استجابات API إلى تواريخ مقروءة، بينما يخبرك [فك تشفير UUID](https://acrafto.com/ar/uuid-decoder-validator/) بإصدار المعرّفات الموجودة في بياناتك وطابعها الزمني. وتجد مزيدًا من الأدوات في قسم [أدوات المطورين](https://acrafto.com/ar/mutatwirun/).

## الأسئلة الشائعة

### هل يُرفع JSON الخاص بي إلى خادم؟

لا. يجري التحليل والتنسيق والإصلاح بالكامل في متصفحك بلغة JavaScript. بعد تحميل الصفحة يمكنك قطع الاتصال بالشبكة وستواصل الأداة العمل. لا يُسجَّل أي شيء ولا يُخزَّن.

### لماذا يرفض المدقق التعليقات بينما يقبلها المحرر الذي أستخدمه؟

أزال مبتكر JSON، Douglas Crockford، التعليقات من الصيغة عن قصد لمنع استخدامها في توجيهات المحلل (parser directives). ملفات مثل `tsconfig.json` أو `.vscode/settings.json` هي من الناحية التقنية JSONC، وهي صيغة موسّعة تدعمها المحررات. أما المحللات الصارمة في واجهات API وقواعد البيانات ومعظم لغات البرمجة فترفضها. يحذف زر الإصلاح التعليقات لتكون النتيجة صالحة في كل مكان.

### هل يمكنني تنسيق JSON Lines أو عدة كائنات دفعة واحدة؟

يحتوي مستند JSON على قيمة واحدة فقط. إذا ألصقت عدة كائنات تفصل بينها فواصل أو أسطر جديدة، يتوقف المدقق عند أول قيمة زائدة. ضعها بين قوسين مربعين لتصبح مصفوفة، ثم نسّقها. لا يفعل زر الإصلاح ذلك تلقائيًا لأنه لا يستطيع معرفة ما إذا كان الإدخال مقصودًا كمستند واحد.

### ما الحد الأقصى للحجم؟

لا يوجد حد ثابت. تُنسَّق المستندات التي يبلغ حجمها بضعة ميغابايتات في أقل من ثانية بكثير على حاسوب محمول. يُعطَّل تلوين الصيغة (syntax highlighting) فوق 400 kB تقريبًا للحفاظ على سرعة استجابة الصفحة، لكن النسخ والتنزيل يبقيان متاحين.

### هل يغيّر ترتيب المفاتيح البيانات؟

لا. الكائنات في JSON غير مرتبة بحكم التعريف، راجع [مقالة JSON على ويكيبيديا](https://ar.wikipedia.org/wiki/JSON)، لذا يقرأ المحلل المستند المرتب والمستند الأصلي على أنهما القيمة نفسها. لا يُعاد ترتيب المصفوفات أبدًا لأن ترتيبها جزء من البيانات.

### كيف أهرّب JSON لتضمينه داخل سلسلة نصية؟

اضغطه أولًا، ثم هرّب كل شرطة مائلة عكسية وكل علامة اقتباس مزدوجة. توفر لغات كثيرة ذلك مباشرة، فالتعبير `JSON.stringify(JSON.stringify(obj))` في JavaScript أو `json.dumps(json.dumps(obj))` في Python ينتج سلسلة JSON تحتوي على نص JSON.

## Other languages

- Čeština (cs): [JSON formatter a validátor](https://acrafto.com/cs/json-formatter-validator/) ([Markdown](https://acrafto.com/cs/json-formatter-validator/index.md))
- Slovenčina (sk): [JSON formatter a validátor](https://acrafto.com/sk/json-formatter-validator-online/) ([Markdown](https://acrafto.com/sk/json-formatter-validator-online/index.md))
- English (en): [JSON Formatter and Validator](https://acrafto.com/en/json-formatter-validator/) ([Markdown](https://acrafto.com/en/json-formatter-validator/index.md))
- Deutsch (de): [JSON Formatter & Validator](https://acrafto.com/de/json-formatter-validator/) ([Markdown](https://acrafto.com/de/json-formatter-validator/index.md))
- Français (fr): [JSON Formatter et validateur](https://acrafto.com/fr/formateur-validateur-json/) ([Markdown](https://acrafto.com/fr/formateur-validateur-json/index.md))
- Español (es): [Formateador y validador JSON](https://acrafto.com/es/formateador-validador-json/) ([Markdown](https://acrafto.com/es/formateador-validador-json/index.md))
- Italiano (it): [JSON formatter e validatore](https://acrafto.com/it/json-formatter-validatore-online/) ([Markdown](https://acrafto.com/it/json-formatter-validatore-online/index.md))
- Português (pt): [Formatador e validador JSON](https://acrafto.com/pt/formatador-validador-json/) ([Markdown](https://acrafto.com/pt/formatador-validador-json/index.md))
- Nederlands (nl): [JSON formatter & validator](https://acrafto.com/nl/json-formatter-validator/) ([Markdown](https://acrafto.com/nl/json-formatter-validator/index.md))
- Polski (pl): [JSON Formatter i walidator](https://acrafto.com/pl/json-formatter-i-walidator/) ([Markdown](https://acrafto.com/pl/json-formatter-i-walidator/index.md))
- Română (ro): [JSON formatter și validator](https://acrafto.com/ro/json-formatter-validator/) ([Markdown](https://acrafto.com/ro/json-formatter-validator/index.md))
- Magyar (hu): [JSON formatter és validátor](https://acrafto.com/hu/json-formatter-validator/) ([Markdown](https://acrafto.com/hu/json-formatter-validator/index.md))
- Ελληνικά (el): [JSON formatter και validator](https://acrafto.com/el/json-formatter-validator/) ([Markdown](https://acrafto.com/el/json-formatter-validator/index.md))
- Български (bg): [JSON formatter и валидатор](https://acrafto.com/bg/json-formatter-validator/) ([Markdown](https://acrafto.com/bg/json-formatter-validator/index.md))
- Hrvatski (hr): [JSON formatter i validator](https://acrafto.com/hr/json-formatter-validator-online/) ([Markdown](https://acrafto.com/hr/json-formatter-validator-online/index.md))
- Slovenščina (sl): [JSON formatter in validator](https://acrafto.com/sl/json-formatter-validator/) ([Markdown](https://acrafto.com/sl/json-formatter-validator/index.md))
- Eesti (et): [JSON formatter ja validaator](https://acrafto.com/et/json-formatter-validaator/) ([Markdown](https://acrafto.com/et/json-formatter-validaator/index.md))
- Latviešu (lv): [JSON formatter un validētājs](https://acrafto.com/lv/json-formatter-validetajs/) ([Markdown](https://acrafto.com/lv/json-formatter-validetajs/index.md))
- Lietuvių (lt): [JSON Formatter ir validatorius](https://acrafto.com/lt/json-formatter-validatorius/) ([Markdown](https://acrafto.com/lt/json-formatter-validatorius/index.md))
- Svenska (sv): [JSON formatter och validator](https://acrafto.com/sv/json-formatter-validator/) ([Markdown](https://acrafto.com/sv/json-formatter-validator/index.md))
- Dansk (da): [JSON formatter og validator](https://acrafto.com/da/json-formatter-validator/) ([Markdown](https://acrafto.com/da/json-formatter-validator/index.md))
- Suomi (fi): [JSON formatter ja validaattori](https://acrafto.com/fi/json-formatter-validaattori/) ([Markdown](https://acrafto.com/fi/json-formatter-validaattori/index.md))
- Norsk (no): [JSON formatter og validator](https://acrafto.com/no/json-formatter-validator/) ([Markdown](https://acrafto.com/no/json-formatter-validator/index.md))
- Українська (uk): [JSON Formatter і валідатор](https://acrafto.com/uk/json-formatter-i-validator/) ([Markdown](https://acrafto.com/uk/json-formatter-i-validator/index.md))
- Русский (ru): [JSON formatter и валидатор](https://acrafto.com/ru/json-formatter-validator/) ([Markdown](https://acrafto.com/ru/json-formatter-validator/index.md))
- Српски (sr): [JSON formatter i validator](https://acrafto.com/sr/json-formatter-i-validator/) ([Markdown](https://acrafto.com/sr/json-formatter-i-validator/index.md))
- Македонски (mk): [JSON Formatter & Validator](https://acrafto.com/mk/json-formatter-validator/) ([Markdown](https://acrafto.com/mk/json-formatter-validator/index.md))
- Bosanski (bs): [JSON formatter i validator](https://acrafto.com/bs/json-formatter-validator/) ([Markdown](https://acrafto.com/bs/json-formatter-validator/index.md))
- Shqip (sq): [JSON Formatter dhe validues](https://acrafto.com/sq/json-formatter-validues/) ([Markdown](https://acrafto.com/sq/json-formatter-validues/index.md))
- Türkçe (tr): [JSON formatter ve doğrulayıcı](https://acrafto.com/tr/json-formatter-dogrulayici/) ([Markdown](https://acrafto.com/tr/json-formatter-dogrulayici/index.md))
- 日本語 (ja): [JSON整形ツール](https://acrafto.com/ja/json-formatter-validator/) ([Markdown](https://acrafto.com/ja/json-formatter-validator/index.md))
- 한국어 (ko): [JSON 정렬 및 검사기](https://acrafto.com/ko/json-formatter-validator/) ([Markdown](https://acrafto.com/ko/json-formatter-validator/index.md))
- हिन्दी (hi): [JSON Formatter और Validator](https://acrafto.com/hi/json-formatter-validator/) ([Markdown](https://acrafto.com/hi/json-formatter-validator/index.md))
- Bahasa Indonesia (id): [JSON formatter dan validator](https://acrafto.com/id/json-formatter-validator/) ([Markdown](https://acrafto.com/id/json-formatter-validator/index.md))
- Tiếng Việt (vi): [JSON Formatter và Validator](https://acrafto.com/vi/json-formatter-kiem-tra-json/) ([Markdown](https://acrafto.com/vi/json-formatter-kiem-tra-json/index.md))
- ไทย (th): [JSON Formatter & Validator](https://acrafto.com/th/json-formatter-validator/) ([Markdown](https://acrafto.com/th/json-formatter-validator/index.md))
- עברית (he): [JSON Formatter ובדיקת תקינות](https://acrafto.com/he/json-formatter-validator/) ([Markdown](https://acrafto.com/he/json-formatter-validator/index.md))
