ما هو JSON؟
JSON (JavaScript Object Notation) صيغة نصية للبيانات المهيكلة تتكون من كائنات ومصفوفات ونصوص وأرقام وقيم منطقية وnull. يعرّفها المعياران RFC 8259 وECMA-404، وهي مستقلة عن لغة البرمجة، وتُعدّ الصيغة الافتراضية لواجهات الويب لأنها مضغوطة وقابلة للقراءة وسهلة التحليل.
كيفية استخدام مولّد بيانات JSON وهمية
- اكتب قالب JSON وضع الوسوم ({{tags}}) داخل القيم النصية.
- ضع الكائنات المتكررة داخل مصفوفة عنصرها الأول "repeat(5)".
- حدّد بذرة (seed) اختيارياً، ثم اضغط «توليد» (Generate) أو «إعادة التوليد» (Regenerate).
- انسخ مخرجات mock.json أو نزّلها.
مزايا مولّد بيانات JSON وهمية
- أكثر من ستين عنصراً نائباً: أسماء وعناوين بريد إلكتروني ومعرّفات وأرقام وقيم منطقية وتواريخ واختيارات (pick) ونصوص lorem وقيم للاتصال والأعمال والمواقع الجغرافية
- توسيع المصفوفات بصيغة ["repeat(n)", …] و["repeat(a-b)", …] مع {{index}}
- مخرجات ذات أنواع محدّدة: القيمة المكوّنة من وسم واحد بالضبط تصبح عدداً أو قيمة منطقية أو null
- تبقى الأسماء وعناوين البريد الإلكتروني وأسماء المستخدمين متسقة داخل الكائن الواحد
- بذرة (seed) اختيارية لبيانات ثابتة (fixtures) قابلة لإعادة الإنتاج؛ وزر «إعادة التوليد» (Regenerate) للحصول على بيانات جديدة
- بلا eval وبلا اتصال بالشبكة — يُحلَّل القالب بوصفه JSON وتُملأ قيمه داخل المتصفح
مثال على مولّد بيانات JSON وهمية
مستخدمان بحقول ذات أنواع محدّدة
الإدخال:
{ "users": ["repeat(2)", { "id": "{{index}}", "name": "{{name}}", "email": "{{email}}", "age": "{{int:18-65}}", "active": "{{bool}}" }] }النتيجة:
{
"users": [
{ "id": 0, "name": "Nicholas Reed", "email": "nicholas.reed@example.org", "age": 21, "active": false },
{ "id": 1, "name": "Caleb Whitaker", "email": "caleb.whitaker@example.com", "age": 64, "active": true }
]
}الأسئلة الشائعة حول مولّد بيانات JSON وهمية
ما العناصر النائبة المتاحة؟
الأسماء وعناوين البريد الإلكتروني وأسماء المستخدمين (متسقة داخل الكائن الواحد)، وuuid/ulid/id/index، وint/float/price/percent، وbool/null، وdate/datetime/unix مع نطاقات past وfuture وrecent أو نطاقات السنوات، وpick:a|b|c، وlorem/sentence/paragraph، وphone/url/color/ip/mac/hex/token، وcompany/job/product، وstreet/city/country/lat/lng وغيرها — راجع المرجع أسفل المخرجات.
كيف أكرّر الكائنات؟
اجعل العنصر الأول في المصفوفة "repeat(5)" (أو "repeat(2-5)" لعدد عشوائي) متبوعاً بقالب العنصر. ويعطي {{index}} موضع العنصر داخل التكرار.
هل القيم ذات أنواع محدّدة؟
السلسلة النصية المكوّنة من وسم واحد بالضبط تصبح في المخرجات عدداً فعلياً أو قيمة منطقية أو null. أما الوسوم المضمّنة داخل نص فتبقى سلاسل نصية ("Order {{int:1-9}}").
هل المخرجات قابلة لإعادة الإنتاج؟
أدخل بذرة (seed) للحصول على البيانات نفسها في كل تشغيل؛ أو اتركها فارغة للحصول على بيانات عشوائية جديدة بزر «إعادة التوليد». لا يُقيَّم أي شيء بوصفه كوداً، ولا يغادر أي شيء المتصفح.
هل البيانات حقيقية؟
لا. جميع الأسماء وعناوين البريد الإلكتروني (نطاقات example.com) وأرقام الهواتف (نطاق 555) والعناوين بيانات اختبار اصطناعية.
ملاحظات تقنية
تتبع الوسوم الصيغة {{name}} أو {{name:argument}} وتُحلّ من سجلّ ثابت؛ وتُترك الوسوم غير المعروفة كما هي مع تحذير، فلا يُنفَّذ أي إدخال من المستخدم أبداً. وتحفظ النطاقات الخاصة بكل كائن الاسم الأول واسم العائلة بحيث تتوافق {{name}} و{{email}} و{{username}}، بينما تحصل كل دورة من repeat() وكل عنصر في المصفوفة على نطاق جديد.
المراجع
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Formatقواعد JSON: الكائنات والمصفوفات والنصوص والأرقام والقيم الثلاث الثابتة، وUTF-8 كترميز للتبادل.
- ECMA-404: The JSON Data Interchange Syntaxصياغة JSON كمعيار من Ecma، متوافقة مع RFC 8259.
- Introducing JSONالوصف الأصلي المختصر لـ JSON مع مخططاته النحوية.
- OpenAPI Specificationالمعيار لوصف واجهات REST: المسارات والعمليات والمعاملات والمخططات والاستجابات وأنظمة الأمان.