كيفية استخدام تسطيح / إلغاء تسطيح JSON
- الصق مستند JSON متداخلاً (للتسطيح) أو كائناً مسطّحاً من المفاتيح والقيم (لإلغاء التسطيح).
- اختر الفاصل ونمط فهارس المصفوفات.
- اضغط «تسطيح» (Flatten) أو «إلغاء التسطيح» (Unflatten) ثم انسخ الناتج.
مزايا تسطيح / إلغاء تسطيح JSON
- تسطيح الكائنات والمصفوفات المتداخلة إلى مفاتيح مسار أحادية المستوى
- اختيار الفاصل (. أو / أو _ أو __ أو :) وفهارس المصفوفات بصيغة النقطة أو الأقواس
- الحفاظ على الكائنات والمصفوفات الفارغة
- إلغاء تسطيح مفاتيح المسار وإعادتها إلى بنى متداخلة
- اكتشاف المفاتيح المتعارضة التي لا يمكن تداخلها
- إحصاءات عن عدد المفاتيح وعمق المسارات
مثال على تسطيح / إلغاء تسطيح JSON
تسطيح سجل مستخدم
الإدخال:
{"user":{"name":"Layla","roles":["admin","editor"]},"active":true}النتيجة:
{
"user.name": "Layla",
"user.roles.0": "admin",
"user.roles.1": "editor",
"active": true
}الأسئلة الشائعة حول تسطيح / إلغاء تسطيح JSON
ما الذي ينتج عن التسطيح؟
كائن أحادي المستوى مفاتيحه مسارات كاملة، مثل user.address.city أو user.roles.0. ويُحافَظ على الكائنات والمصفوفات الفارغة كـ {} و[] بحيث لا تُفقد أي معلومات.
هل يمكنني الحصول على مسارات مصفوفات بصيغة الأقواس؟
نعم — اختر «الأقواس» (Brackets) لإخراج user.roles[0] بدلاً من user.roles.0. ويُفهم كلا النمطين عند إلغاء التسطيح.
متى أستخدم فاصلاً مختلفاً؟
استخدم "__" أو ":" عندما تحتوي مفاتيحك أصلاً على نقاط (أسماء النطاقات، أرقام الإصدارات) لتبقى المسارات واضحة لا لبس فيها، أو "/" لمحاكاة المفاتيح بنمط المؤشرات (pointer).
لماذا يفشل إلغاء التسطيح بخطأ «تعارض» (conflict)؟
يصف مفتاحان بنيتين غير متوافقتين، مثل "a": 1 و"a.b": 2 — فلا يمكن أن يكون "a" رقماً وكائناً في آن واحد. أزل أحدهما أو أعد تسميته.