تحويل YAML وJSON

حوّل مجموعة محددة من YAML 1.2 وJSON محليًا، مع حفظ ألفاظ الأعداد الدقيقة ورفض البنى غير المدعومة بدل فقد البيانات صامتًا.

المعالجة داخل متصفحك دون رفع أو حفظ تلقائي. قراءة الملف لها مهلة 5 ثوانٍ مستقلة، ثم عامل واحد قابل للإلغاء بمهلة 5 ثوانٍ للتحويل. لا يجري فتح الروابط أو تنفيذ المحتوى.

المدخل حتى 256 KiB بصيغة UTF-8، والناتج حتى 2 MiB. عمق 32، و500 زوج لكل خريطة، و30000 عقدة CST أو AST، و120000 lexeme. النص المفكوك حتى 65536 وحدة UTF-16، ولفظ العدد حتى 1024 محرفًا. هذه ليست حدودًا لذاكرة المتصفح كلها.

مجموعة محددة من YAML 1.2 فقط: مفاتيح نصية فريدة، قوائم وخرائط وقيم JSON. تُرفض anchors وaliases وtags الصريحة وdirectives وmerge والمستندات المتعددة والمفاتيح غير النصية وNaN وInfinity. استخدم خرائط صريحة داخل القوائم، مثل [{a: b}].

تبقى ألفاظ أعداد JSON الكبيرة والعشرية والأسية دون تحويل إلى Number، بما فيها -0 و1e400. تُطبّع صيغ YAML العددية المدعومة نصيًا، ويحوّل hex/octal غير الموقعين بـBigInt. yes وon والتواريخ العادية تبقى نصًا؛ لا قواعد YAML 1.1.

طريقة الاستخدام

اختر اتجاه التحويل ومصدر المدخل. ألصق النص أو اختر ملف UTF-8 محليًا، ثم حوّل وراجع المعاينة وإشعار فقد أسلوب الكتابة. انسخ الناتج كاملًا بفعل صريح أو نزّل converted.json أو converted.yaml. المدخل الطويل أو الملف الذي تعذرت قراءته يبقى مرفوضًا حتى تصحيح ذلك المدخل نفسه؛ تغيير خيار آخر لا يعيد حساب قيمة قديمة. يمكن إلغاء القراءة أو التحويل؛ لا يتغير الملف الأصلي.

مثال عملي

YAML: n: 9007199254740993 ينتج JSON يحتفظ بالعدد نفسه، وJSON: {"n":1e400,"name":"عربي"} ينتج YAML بلفظ1e400 دون Infinity. .5 تصبح0.5 و0o10 تصبح8، بينما yes والتاريخ2026-09-25 يبقيان نصًا.

حدود الدعم

تُحفظ القيم وترتيب الخرائط والقوائم وألفاظ grammar JSON دون Number؛ صيغ YAML العددية المدعومة تطبّع نصيًا وhex/octal غير الموقعين بـBigInt. لا YAML1.1 أو حفظ comments/styles/quotes أو فواصل المصدر؛ الناتج UTF-8 دون BOM مع LF نهائي. تُرفض aliases وanchors وtags الصريحة حتى!!str وdirectives والمستندات المتعددة وmerge والمفاتيح غير النصية/المكررة وNaN/Infinity وflow pairs المختصرة مثل [a: b]. استخدم خرائط صريحة. الملف يُفك UTF-8 بفشل صريح؛ BOM محفوظ في المدخل ويقبله YAML أولًا ويرفضه JSON. المعاينة نص آمن للعرض فقط وقد تنتهي داخل محرف مركب، والنسخ قد يوحّد فواصل الأسطر حسب النظام. لا رفع أو حفظ أو تنفيذ أو زيارة روابط.

أسئلة شائعة

هل يدعم المحول YAML كاملًا أو يصلح الملف تلقائيًا؟

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

أدوات مرتبطة