JSONC
ملفات تخزين storh هي كائنات JSON، وتقبل عمليات القراءة صيغة JSONC: تعليقات الأسطر، والتعليقات المحاطة بعلامات، والفواصل الزائدة. يتيح ذلك فتح ملفات السجلات وإضافة التعليقات التوضيحية إليها بأمان في محرر؛ ويظل storh يتولى تحليلها.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
تحاول عمليات القراءة تحليل json_decode الصارمة أولًا، ولا تلجأ إلى مزيل JSONC إلا عند الإخفاق، لذا لا تتحمل الملفات المعيارية كلفة معالجة التعليقات.
ما يكتبه storh
تكون عمليات الكتابة بصيغة JSON معيارية ومضغوطة في سطر واحد، مع سطر جديد في النهاية:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
تبقى التعليقات والتنسيقات المخصصة كما هي حتى يعيد storh كتابة ذلك السجل. ويستبدل put() بالمعرّف نفسه الملف بالكامل بمخرجات معيارية، لذا تعامل مع التعليقات كملاحظات مؤقتة لا كبيانات وصفية دائمة. مكان المعلومات الدائمة هو data.
يحافظ الترميز على Unicode والشرطات المائلة دون تهريب، ويُبقي الكسور الصفرية للأعداد العشرية (1.0 تظل 1.0)، لذا تكون البايتات مطابقة بعد فك ترميز البيانات نفسها وإعادة ترميزها. أما بيانات الفهارس الوصفية والملفات الداخلية الأخرى فهي كائنات JSON مع التساهل نفسه في القراءة.
يرفض Jsonc::decode_object() المستندات التي ليست كائنات والمدخلات غير السليمة. ويكتب Jsonc::encode_object() وJsonc::encode_compact_object() المصفوفات على هيئة مستندات كائنات.