
يقوم أداة تسطيح JSON بتحويل كائن JSON المتداخل إلى كائن أحادي المستوى تكون مفاتيحه هي المسار الكامل لكل قيمة، لذلك يصبح {"user":{"city":"Austin"}} {"user.city":"Austin"}. تتسطح المصفوفات بنفس الطريقة، باستخدام الفهرس كمقطع مسار: {"roles": ["admin"، "editor"]} تصبح {"roles.0": "admin"، "roles.1": "editor"}. والنتيجة هي خريطة مسطحة للمسار إلى قيمة الورقة مع عدم وجود تداخل متبقي.
التسطيح هو الطريقة التي تحصل بها على استجابات واجهة برمجة التطبيقات المتداخلة بعمق وتكوين الملفات إلى تنسيقات لا تفهم سوى أزواج قيمة المفتاح المسطحة. تتوقع أعمدة جداول البيانات ومتغيرات البيئة ومفاتيح رسائل i18n المنقطة ومخازن علامات الميزات والعديد من خطوط أنابيب التسجيل والتحليل مستوى واحدًا من المفاتيح ومسار منقط مثل user.address.city هي الطريقة القياسية لنقل البنية الأصلية من خلالها. العملية العكسية، غير المسطحة، تعيد بناء الكائن المتداخل ومصفوفاته من تلك المفاتيح المنقطة، وبالتالي فإن التحويل هو رحلة ذهابًا وإيابًا بدون فقدان في كلا الاتجاهين.
تعمل هذه الأداة بالكامل في متصفحك. يقوم بتوزيع JSON، وتوجيهه إلى القيم الطرفية، وإجراء تسلسل للنتيجة المسطحة أو المتداخلة دون إرسال أي شيء إلى الخادم. لا يتم تحميل أي شيء أو تسجيله أو تخزينه، مما يحافظ على الحمولات التي تحتوي على الرموز المميزة أو المعرفات أو البيانات الشخصية على جهازك، وتستمر الأداة في العمل دون الاتصال بالإنترنت بمجرد تحميل الصفحة.
هيكل صفقات التسطيح لشكل يمكن أن تحمله جداول البيانات وأجهزة تشفير النماذج ومتغيرات البيئة، وتكون الرحلة ذهابًا وإيابًا بلا فقدان في كلا الاتجاهين بشرط أن يكون هناك شيء واحد: يجب ألا تحتوي مفاتيحك على المحدد بالفعل. لا يمكن تمييز المفتاح المسمى "اسم المستخدم" المسطح بنقطة عن الكائن المتداخل، وسيحوله عدم التسطيح إلى مفتاح واحد. قم بتغيير المحدد إلى شيء لا تستخدمه البيانات عندما يكون ذلك مخاطرة. تصبح مؤشرات المصفوفة مقاطع مسار رقمية، لذا تتناول العناصر.0.id العنصر الأول، ويجب على غير المسطح أن يقرر ما إذا كان المفتاح الرقمي يعني مصفوفة أو كائنًا بمفاتيح رقمية. يتم الاحتفاظ بالكائنات الفارغة والمصفوفات الفارغة بشكل صريح بدلاً من إسقاطها، لأن فقدانها قد يؤدي إلى تغيير معنى ملف التكوين.
يقوم Flatten بتحويل JSON المتداخل إلى مفاتيح منقطة. يقوم Unflatten بإعادة بناء الكائنات والمصفوفات المتداخلة من المفاتيح المنقطة. قم بتحميل العينة لرؤية كلا الاتجاهين.
الصق كائنًا متداخلًا للتسطيح، أو كائنًا مسطحًا بمفاتيح منقطة للتسطيح. يجب أن يكون الإدخال JSON صالحًا؛ يتم الإبلاغ عن أخطاء التحليل بالموضع الدقيق.
اختر المحدد، الذي عادة ما يكون نقطة، واختر تدوين النقطة (الأدوار.0) أو القوس (الأدوار [0]) لمؤشرات المصفوفة. احتفظ بنفس الإعدادات لكلا الاتجاهين حتى تتطابق الرحلة ذهابًا وإيابًا.
اضغط على زر الإجراء، ثم انسخ الإخراج إلى الحافظة الخاصة بك أو قم بتنزيله كملف.json. يؤكد عدد المفاتيح عدد الأوراق التي تم إنتاجها.
قم بتسوية كائن متداخل، ثم قم بإلغاء تسوية النتيجة، وستحصل على النسخة الأصلية مرة أخرى، بما في ذلك المصفوفات، والأصفار، والمنطقية، والحاويات الفارغة. العمليتان معكوستان تمامًا.
تحافظ عناصر المصفوفة على فهرسها في المسار، لذلك يبقى الترتيب على قيد الحياة ذهابًا وإيابًا. اختر تدوين النقطة (العناصر 0.id) أو تدوين القوس (العناصر [0].id) لتتناسب مع النظام الذي تغذيه.
استخدم نقطة افتراضيًا، أو قم بالتبديل إلى فاصل آخر عندما تحتوي مفاتيح الهدف الخاصة بك على نقاط بالفعل. نفس محركات المحدد مسطحة وغير مسطحة.
يتم الاحتفاظ بالكائن الفارغ أو المصفوفة الفارغة كقيمة ورقية بدلاً من إسقاطها بصمت، لذا فإن التكوين الذي يعتمد على قائمة فارغة يظل ذهابًا وإيابًا بشكل صحيح.
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
Sort the keys of a JSON object alphabetically, recursively through nested objects, with optional array sorting. Ascending or descending, minify or pretty. Client-side, no signup.
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
Convert JSON to clean, valid YAML instantly - configurable indentation and safe string quoting
0 comments
No comments yet. Be the first to share your thoughts!