العمل مع JSON في JavaScript: تحليل البيانات وتسلسلها

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

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

ابدأ الدورة

مقدمة عن JSON ودوره في JavaScript الحديث



JSON (JavaScript Object Notation) هو تنسيق خفيف لتبادل البيانات أصبح المعيار الفعلي لنقل المعلومات بين العميل والخادم. على الرغم من أن الاسم يحتوي على "JavaScript"، إلا أن JSON هو تنسيق مستقل عن اللغة، لكن بناء جمله قريب جداً من بناء جمل كائنات JavaScript. في بيئة Node.js، العمل مع JSON هو مهمة يومية لأي مطور backend: من قراءة ملفات التكوين إلى معالجة طلبات API.



في هذه المقالة، سنشرح بالتفصيل طريقتين رئيسيتين للعمل مع JSON في JavaScript: JSON.parse() للتحليل (تحويل السلسلة النصية إلى كائن) و JSON.stringify() للتسلسل (تحويل الكائن إلى سلسلة نصية). ستتعلم ليس فقط الأساسيات، ولكن أيضاً التقنيات المتقدمة التي ستساعدك على كتابة كود أكثر موثوقية وكفاءة في Node.js.



JSON.parse(): تحويل السلسلة النصية إلى كائن JavaScript



الطريقة JSON.parse() تأخذ سلسلة نصية بتنسيق JSON وتعيد الكائن المقابل في JavaScript. هذه هي العملية الأساسية عند استلام البيانات من API أو قراءة ملفات JSON.



البناء الأساسي ومثال بسيط



بناء الطريقة بسيط للغاية:



JSON.parse(text[, reviver])


حيث text هي السلسلة النصية JSON، والمعامل الاختياري reviver هو دالة يمكنها تحويل القيم قبل الإرجاع.



لننظر إلى مثال أساسي:



const jsonString = '{"name": "Node.js", "version": 18, "features": ["async", "await"]}';const parsedObject = JSON.parse(jsonString);

console.log(parsedObject.name); // "Node.js"console.log(parsedObject.version); // 18console.log(parsedObject.features); // ["async", "await"]


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



أحد الأخطاء الأكثر شيوعاً هو محاولة تحليل JSON غير صحيح. في Node.js، سيؤدي ذلك إلى إلقاء استثناء SyntaxError. استخدم دائماً بنية try...catch للتحليل الآمن:



const invalidJson = '{"name": "Node.js", version: 18}'; // خطأ: المفتاح version بدون علامات اقتباس

try { const data = JSON.parse(invalidJson); console.log(data);} catch (error) { if (error instanceof SyntaxError) { console.error('خطأ في تحليل JSON:', error.message); // الإخراج: خطأ في تحليل JSON: Expected property name in JSON at position 27 }}


استخدام معامل reviver لتحويل البيانات



المعامل reviver يسمح بتعديل القيم أثناء التحليل. هذا مفيد بشكل خاص لتحويل التواريخ النصية إلى كائنات Date:



const jsonWithDate = '{"event": "مؤتمر", "date": "2024-12-15T10:00:00Z"}';

const result = JSON.parse(jsonWithDate, (key, value) => { if (key === 'date') { return new Date(value); } return value;});

console.log(result.date instanceof Date); // trueconsole.log(result.date.toLocaleDateString('ar-SA')); // 15/12/2024


JSON.stringify(): تحويل الكائن إلى سلسلة JSON



الطريقة JSON.stringify() تقوم بالعملية العكسية - تحويل كائن JavaScript إلى سلسلة JSON. هذا ضروري عند إرسال البيانات إلى الخادم أو حفظ الحالة في ملف.



البناء والأمثلة الأساسية



البناء الكامل للطريقة يتضمن ثلاثة معاملات:



JSON.stringify(value[, replacer[, space]])


  • value — الكائن المراد تسلسله (إلزامي)
  • replacer — دالة أو مصفوفة لتصفية الخصائص (اختياري)
  • space — عدد المسافات للتنسيق (اختياري)


مثال بسيط على التسلسل:



const user = {    id: 101,    name: "أليكسي",                

المدونات

توصيات الكتب