JSON في JavaScript: دليل كامل للتحليل والتسلسل

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع JSON في JavaScript: التحليل والتسلسل عمليًا

\n\n

JSON (JavaScript Object Notation) هو تنسيق خفيف لتبادل البيانات يُستخدم على نطاق واسع في تطبيقات الويب الحديثة. في JavaScript، العمل مع JSON مدمج على مستوى اللغة، مما يجعله أداة مثالية لتبادل البيانات بين العميل والخادم، وكذلك لتخزين الإعدادات. في هذه المقالة، سنشرح كيفية تحليل وتسلسل JSON في بيئة Node.js، وسنستعرض أمثلة عملية وأفضل الممارسات.

\n\n

ما هو JSON ولماذا نحتاجه؟

\n

JSON هو تنسيق نصي يعتمد على بناء جملة كائنات JavaScript. يدعم أنواع البيانات التالية:

\n
    \n
  • سلاسل نصية (بعلامات اقتباس مزدوجة)
  • \n
  • أرقام (صحيحة وعائمة)
  • \n
  • قيم منطقية (true/false)
  • \n
  • مصفوفات
  • \n
  • كائنات
  • \n
  • null
  • \n
\n

يُستخدم JSON في كل مكان: من طلبات API إلى ملفات الإعدادات (مثل package.json). في Node.js، JSON هو التنسيق الرئيسي لتبادل البيانات بين الخدمات المصغرة.

\n\n

تحليل JSON: تحويل السلسلة النصية إلى كائن

\n

لتحويل سلسلة JSON إلى كائن JavaScript، يُستخدم الأسلوب JSON.parse(). لنلقِ نظرة على مثال أساسي:

\n\n
const jsonString = '{"name": "آنا", "age": 30, "isStudent": false}';\nconst user = JSON.parse(jsonString);\n\nconsole.log(user.name);      // "آنا"\nconsole.log(user.age);       // 30\nconsole.log(user.isStudent); // false
\n\n

هام: يجب أن تكون سلسلة JSON منسقة بدقة. يجب أن تكون جميع المفاتيح والقيم النصية بعلامات اقتباس مزدوجة. علامات الاقتباس المفردة أو الفواصل الزائدة ستؤدي إلى خطأ.

\n\n

معالجة الأخطاء أثناء التحليل

\n

عند العمل مع بيانات خارجية (من ملفات، API)، هناك دائمًا خطر الحصول على JSON غير صحيح. استخدم try...catch:

\n\n
const fs = require('fs');\n\ntry {\n  const data = fs.readFileSync('data.json', 'utf8');\n  const parsed = JSON.parse(data);\n  console.log('تم التحليل بنجاح:', parsed);\n} catch (error) {\n  if (error instanceof SyntaxError) {\n    console.error('خطأ في بناء جملة JSON:', error.message);\n  } else {\n    console.error('خطأ في قراءة الملف:', error.message);\n  }\n}
\n\n

التحليل باستخدام دالة المراجعة

\n

يقبل الأسلوب JSON.parse() وسيطًا ثانيًا — دالة يمكنها تحويل القيم. هذا مفيد، على سبيل المثال، لتحويل التواريخ النصية إلى كائنات Date:

\n\n
const json = '{"name": "إيفان", "birthDate": "1990-05-15T00:00:00Z"}';\nconst user = JSON.parse(json, (key, value) => {\n  if (key === 'birthDate') {\n    return new Date(value);\n  }\n  return value;\n});\n\nconsole.log(user.birthDate instanceof Date); // true\nconsole.log(user.birthDate.getFullYear());   // 1990
\n\n

تسلسل JSON: تحويل الكائن إلى سلسلة نصية

\n

العملية العكسية — تحويل كائن JavaScript إلى سلسلة JSON — تتم باستخدام JSON.stringify().

\n\n
const user = {\n  name: 'ماريا',\n  age: 25,\n  skills: ['JavaScript', 'Node.js', 'Python'],\n  isActive: true\n};\n\nconst jsonString = JSON.stringify(user);\nconsole.log(jsonString);\n// {"name":"ماريا","age":25,"skills":["JavaScript","Node.js","Python"],"isActive":true}
\n\n

تنسيق المخرجات

\n

لزيادة قابلية القراءة، يمكن إضافة مسافات بادئة:

\n\n
const prettyJson = JSON.stringify(user, null, 2);\nconsole.log(prettyJson);\n/*\n{\n  "name": "ماريا",\n  "age": 25,\n  "skills": [\n    "JavaScript",\n    "Node.js",\n    "Python"\n  ],\n  "isActive": true\n}\n*/
\n\n

تصفية واستبدال القيم

\n

الوسيط الثاني لـ JSON.stringify() يمكن أن يكون مصفوفة من المفاتيح (للتصفية) أو دالة بديلة:

\n\n


                
                

المدونات

توصيات الكتب