معالجة JSON في Node.js: دليل شامل

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

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

ابدأ الدورة

معالجة JSON في Node.js: دليل شامل



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



الطرق الأساسية: JSON.parse() و JSON.stringify()



طريقتان رئيسيتان للعمل مع JSON مدمجتان مباشرة في JavaScript. وهما متاحتان عالميًا ولا تتطلبان تثبيت مكتبات إضافية.



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



تأخذ طريقة JSON.parse() سلسلة JSON وتعيد كائن JavaScript المقابل. إذا كانت السلسلة تحتوي على JSON غير صالح، فسيتم طرح استثناء SyntaxError.



const jsonString = '{"name": "آنا", "age": 28, "isStudent": false}';const user = JSON.parse(jsonString);console.log(user.name); // "آنا"console.log(user.age);  // 28


يمكن تمرير دالة مراجعة كمعامل اختياري ثاني، والتي تسمح بتعديل القيم أثناء عملية التحليل:



const json = '{"year": "2024", "price": "1500.50"}';const data = JSON.parse(json, (key, value) => {  if (key === 'price') return parseFloat(value);  if (key === 'year') return parseInt(value);  return value;});console.log(typeof data.price); // "number"


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



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



const user = {  name: "إيفان",  age: 32,  skills: ["JS", "Node", "Python"]};

// بدون تنسيقconsole.log(JSON.stringify(user));// {"name":"إيفان","age":32,"skills":["JS","Node","Python"]}

// مع التنسيق (مسافتان)console.log(JSON.stringify(user, null, 2));/*{ "name": "إيفان", "age": 32, "skills": [ "JS", "Node", "Python" ]}*/


يمكن أن تكون الوسيطة الثانية مصفوفة من المفاتيح للتصفية:



console.log(JSON.stringify(user, ['name', 'age']));// {"name":"إيفان","age":32}


العمل مع ملفات JSON في Node.js



في Node.js، غالبًا ما يكون من الضروري قراءة وكتابة ملفات JSON. لهذا الغرض، يتم استخدام وحدات fs (نظام الملفات).



قراءة ملف JSON



const fs = require('fs');

// قراءة متزامنةtry { const data = fs.readFileSync('config.json', 'utf8'); const config = JSON.parse(data); console.log(config.port);} catch (err) { console.error('خطأ في قراءة الملف:', err.message);}

// قراءة غير متزامنةfs.readFile('config.json', 'utf8', (err, data) => { if (err) { console.error('خطأ:', err); return; } const config = JSON.parse(data); console.log(config.port);});


كتابة ملف JSON



const fs = require('fs');

const settings = { theme: 'dark', language: 'ar', fontSize: 14};

// كتابة متزامنةfs.writeFileSync('settings.json', JSON.stringify(settings, null, 2));

// كتابة غير متزامنةfs.writeFile('settings.json', JSON.stringify(settings, null, 2), (err) => { if (err) console.error('خطأ في الكتابة:', err); else console.log('تم حفظ الملف');});


التحقق من صحة JSON



قبل استخدام البيانات، يجب دائمًا التحقق من صحتها. أبسط طريقة هي تغليف JSON.parse() في try-catch. للتحقق الأكثر تعقيدًا من بنية البيانات، يمكن استخدام المكتبات.



التحقق باستخدام try-catch



function safeJsonParse(str) {  try {    return { data: JSON.parse(str), error: null };  } catch (e) {    return { data: null, error: e.me                    

توصيات