ملف JSON حفظته من المفكرة أو Excel يرفضه برنامج آخر بخطأ عند أول حرف تمامًا، لماذا؟
السبب الأرجح علامة خفية في أول الملف اسمها علامة ترتيب البايتات (BOM). بعض المحررات تضعها حين تحفظ الملف بترميز UTF-8، والبرامج التي تقرأ JSON بصرامة ترفضها. منسّق JSON يخبرك إن بدأ النص بهذه العلامة، ويتجاهلها ويحذفها من الناتج، فيخرج الملف المنزَّل نظيفًا.
حرف لا تراه
علامة ترتيب البايتات حرف واحد غير مرئي، رمزه U+FEFF، يوضع في أول الملف ليقول إن ترميزه UTF-8. في الملف تشغل ثلاثة بايتات قبل أول قوس. لا تراها في أي محرر تقريبًا، ولذلك يبدو الملف سليمًا تمامًا، والخطأ يشير إلى السطر 1 والعمود 1، حيث لا ترى أي شيء خاطئ.
معيار JSON لا يسمح للبرامج بإضافة هذه العلامة، ويترك لها حرية تجاهلها عند القراءة. فبعض البرامج تتجاهلها بصمت، وبعضها يرفض الملف. لذلك قد يعمل الملف نفسه في مكان ويفشل في آخر.
من أين تأتي؟
- محررات نصوص تقدم خيار «UTF-8 مع BOM» عند الحفظ، أو تستخدمه افتراضيًا في بعض الإصدارات. في المفكرة الحديثة على ويندوز مثلًا يوجد الخياران، فانظر إلى ما اخترته عند الحفظ.
- ملف نصي صدّرته من جدول بيانات بترميز UTF-8 ثم عدّلته إلى JSON يدويًا: بعض برامج الجداول تضع العلامة في ملفات النص التي تصدرها.
- سكربتات وأنظمة قديمة تكتب ملفاتها بهذه العلامة.
ما الذي تفعله الأداة؟
مثال صغير: النص {"a":1} مسبوقًا بالعلامة. حجم المدخلات 10 بايتات: ثلاثة للعلامة وسبعة للنص. الأداة تعرض تنبيهًا بأن النص يبدأ بعلامة ترتيب البايتات وأنها غير مسموحة في JSON، وأنها تجاهلتها وحذفتها من الناتج. الناتج بعد التصغير 7 بايتات فقط:
{"a":1}
ومثال عربي: {"name":"قهوة"} مع العلامة 22 بايتًا، وبعدها 19. الفرق دائمًا ثلاثة بايتات، وهو حجم العلامة. ولا تحذف الأداة شيئًا آخر ولا تصلح أي خطأ غيرها: إن كان في الملف خطأ حقيقي بعد العلامة فستراه بسطره وعموده.
الخطوات
- افتح منسّق ومدقّق JSON واضغط «افتح ملف JSON» واختر الملف، أو الصق محتواه.
- إن ظهر تنبيه العلامة فهذا تأكيد للسبب. وإن فتحت الملف بالزر فقد يتخلص المتصفح من العلامة أثناء قراءة الملف أصلًا، فلا يظهر التنبيه، والنتيجة واحدة.
- تأكد أن الأداة تقول «JSON صالح».
- اضغط «تنزيل ملف JSON»: الملف المنزَّل يبدأ بالقوس مباشرة، بلا علامة.
- استخدم الملف المنزَّل في البرنامج الذي كان يرفض الأصل.
لتجنبها في المرات القادمة
في محررك اختر عند الحفظ «UTF-8» العادي، لا «UTF-8 مع BOM». وإن كانت بياناتك أصلًا جدولًا، فحوّلها إلى JSON مباشرة عبر محوّل CSV و JSON بدل تعديل ملف نصي يدويًا، فتتجنب خطوة الحفظ من المحرر كلها.
أسئلة شائعة
هل تضيف الأداة العلامة إلى الملف المنزَّل؟
لا. الملف المنزَّل نص UTF-8 يبدأ بأول حرف من JSON.
هل خطأ السطر 1 العمود 1 سببه العلامة دائمًا؟
لا. قد يكون تعليقًا في أول الملف أو حرفًا غريبًا. الأداة تخبرك صراحة إن كانت العلامة هي السبب.
هل يُرفع الملف إلى خادم حين أفتحه بالزر؟
لا، يُقرأ داخل متصفحك ولا يُرفع إلى أي مكان.
