محول JSON إلى Env
حوّل كائن JSON إلى صيغة .env بنمط KEY=VALUE، مع تسطيح الكائنات المتداخلة وإعادة إدراج التعليقات. يعمل بالكامل داخل المتصفح.
الصق كائن JSON لتحصل على أسطر ملف .env التي تقرؤها مكتبة dotenv وما يشبهها عند بدء تشغيل التطبيق. تُدمج الكائنات المتداخلة في أسماء متغيرات منقوطة مثل db.host، وتُكتب المصفوفات سطرًا واحدًا من نص JSON، أما true وfalse والأرقام فتُكتب نصًا عاديًا. وإذا احتوى JSON على خريطة $comments التي ينتجها محوّل Env إلى JSON، فإنها تعود أسطرَ # فوق كل متغير. يجري كل شيء داخل متصفحك، فلا تغادر الأسرار الموجودة في JSON جهازك.
حول محول JSON إلى Env
لا تحمل متغيرات البيئة إلا سلاسل نصية مسطّحة، ولذلك فإن تحويل JSON إلى ملف .env هو في جوهره مسألة تسمية. عند تفعيل التسطيح يُوصَل كل مسار متداخل بالفاصل، فيصبح { "app": { "cache": { "ttl": 60 } } } هو app.cache.ttl=60، وتبقى حالة الأحرف في كل مفتاح كما كُتبت في JSON تمامًا دون تحويلها إلى أحرف كبيرة. لكن الصدفة (shell) لا تستطيع استخدام اسم يحتوي على نقطة كمتغير، لذا اجعل الفاصل شرطة سفلية (app_cache_ttl) إذا كان سكربت shell سيقرأ الملف عبر source. وعند إيقاف التسطيح لا تُفكّ الكائنات المتداخلة، بل يُكتب كل منها سطرًا واحدًا من نص JSON بعد علامة المساواة.
قد تحتاج هذا أيضًا
كيفية تحويل JSON إلى .env
- 1
أدخل كائن JSON
تقبل لوحة الإدخال كائنًا فقط، لا مصفوفة ولا قيمة منفردة. ويمكنك النقر على أيقونة القارورة لتحميل مثال مسطّح صغير يضم مفتاح API ورقم منفذ.
- 2
حدّد طريقة بناء الأسماء
من الخيارات المتقدمة أبقِ النقطة لأسماء على طريقة dotenv مثل db.host، أو اختر الشرطة السفلية لأسماء تصلح للـshell مثل db_host، أو أوقف التسطيح لتبقى الكائنات المتداخلة نص JSON.
- 3
أنشئ أسطر NAME=value
بعد الضغط على «تحويل» تصبح كل قيمة طرفية سطرًا مستقلًا بترتيب المفاتيح الأصلي نفسه، وتُكتب عناصر $comments أسطرَ # مباشرة فوق المتغير الذي تشرحه. القيم التي تحتوي على سطر جديد أو مسافات في بدايتها أو نهايتها أو على علامة # تُكتب بين علامتي اقتباس (ويُكتب السطر الجديد على شكل \n)، فتعود كما هي تمامًا عند تحويلها مرة أخرى إلى JSON.
- 4
احفظ الملف واحمِه
انسخ النص أو نزّله ملفًا باسم .env، ولا تضعه تحت نظام التحكم في الإصدارات إن كان يحوي بيانات اعتماد. وللعودة إلى JSON استخدم أيقونة تبديل اتجاه التحويل.
المراجع
- The Twelve-Factor App — الإعدادات (Config)
المنهجية التي تقوم عليها فكرة تخزين الإعدادات كمتغيرات بيئة، والتي يتبعها تنسيق مخرجات هذا المحول.
- dotenv (motdotla) — README
التطبيق المرجعي لصيغة ملفات .env، الذي يصف كيفية كتابة أزواج KEY=VALUE والتعليقات وفق الاصطلاح المتعارف عليه.
- RFC 8259 — تنسيق تبادل بيانات JSON
مواصفة IETF لتنسيق إدخال JSON الذي تحلّله هذه الأداة.
أدوات مطورين ذات صلة
Env إلى JSON
حوّل ملف .env إلى JSON، مع استنتاج الأنواع والمفاتيح المتداخلة والحفاظ على التعليقات.
JSON إلى Properties
حوّل كائن JSON إلى صيغة .properties الخاصة بجافا، وهو التدفق المكافئ لملفات properties.
منسّق JSON
الصق JSON خام واحصل فورًا على عرض منسّق مع تمييز الصياغة والتحقق من الصحة قبل تحويله.
YAML إلى JSON
حوّل بين صيغتي الإعدادات YAML وJSON.
أسئلة شائعة حول JSON إلى Env
- هل تُحوَّل أسماء المتغيرات إلى أحرف كبيرة؟
- لا. تحتفظ المفاتيح بحالة الأحرف نفسها الموجودة في JSON، فيصبح { "db": { "host": "x" } } هو db.host=x. وبما أن أسماء متغيرات البيئة حساسة لحالة الأحرف في Linux وmacOS، فاكتب مفاتيح JSON بالحالة التي يقرؤها تطبيقك.
- هل يمكن لسكربت shell أن يحمّل ملف .env الناتج عبر source؟
- فقط إذا كان كل اسم معرّفًا صالحًا في الـshell: أحرف وأرقام وشرطات سفلية، دون أن يبدأ برقم. الأسماء المنقوطة مثل db.host تُحمَّل دون مشكلة مع dotenv في Node.js، لكن الـshell لا يعدّها عمليات إسناد، لذا اختر فاصل الشرطة السفلية للملفات التي تنوي تحميلها بـsource.
- هل تُقسَّم المصفوفة إلى عدة متغيرات؟
- لا. مع تفعيل التسطيح تتحول الكائنات المتداخلة وحدها إلى متغيرات منقوطة منفصلة، بينما تُكتب المصفوفة سطرًا واحدًا من نص JSON، مثل tags=["a","b"]. ومع إيقاف التسطيح تبقى الكائنات المتداخلة أيضًا كاملة بصيغة نص JSON.
- هل يتغير ترتيب المتغيرات في المخرجات؟
- لا. تُكتب كل قيمة طرفية سطر NAME=value وفق ترتيبها الأصلي في JSON، فيسهل عليك مقارنة ملف .env الناتج بملف JSON الأصلي سطرًا بسطر.
- هل تحتفظ قيم مثل true و8080 بنوعها داخل .env؟
- لا، فملفات .env لا تعرف الأنواع، لذا تُكتب true وfalse والأرقام نصًا عاديًا. وعند قراءتها مجددًا في Env إلى JSON مع تفعيل استنتاج الأنواع تعود قيمًا منطقية وأرقامًا حقيقية.
- هل يمكن إعادة تعليقات # الأصلية؟
- نعم. إذا احتوى JSON على كائن $comments، مثل الذي يُخرجه Env إلى JSON، يصبح كل عنصر فيه سطر # فوق المتغير المقابل. وإن أردت أسطر NAME=value مجرّدة فاضبط «التعليقات» على «تجاهل» في الخيارات المتقدمة.
- هل يُرفع JSON الذي يحوي مفاتيح API عند تحويله؟
- لا. يجري التحويل محليًا داخل متصفحك، وهذا مهم لأن ملفات .env تحمل عادةً مفاتيح API وكلمات مرور قواعد البيانات.
- لماذا تظهر رسالة بأن اسم المتغير غير صالح؟
- لا يمكن قراءة الاسم من ملف .env مرة أخرى إذا كان فارغًا أو يحتوي على مسافات أو = أو : أو # أو علامات اقتباس أو شرطة مائلة عكسية، لذلك يتوقف المحوّل ويعرض المفتاح المعني بدل كتابة سطر معطوب. غيّر اسم المفتاح في JSON، أو اختر فاصلًا آخر إذا كان الفاصل هو ما أضاف ذلك الحرف.