إذا كنت مطورًا، فمن المحتمل أنك سمعت عن JSON (JavaScript Object Notation). إنه في كل مكان! من واجهات برمجة التطبيقات إلى ملفات التكوين، يعد JSON هو التنسيق المفضل لتبادل البيانات. ولكن كيف نعمل معها في Node.js؟ دعنا نقسمها بعبارات بسيطة، مع بعض الأمثلة الواقعية لمساعدتك على طول الطريق.
بكلمات بسيطة، JSON هو تنسيق لتخزين البيانات وتبادلها. إنها سهلة القراءة والكتابة، مما يجعلها ذات شعبية كبيرة في تطوير الويب. يبدو مثل هذا:
{ "name": "Alice", "age": 25, "city": "Wonderland" }
إنها في الأساس مجموعة من أزواج القيمة الرئيسية، مثل كائن JavaScript. لكن تذكر: JSON هو مجرد نص، ويجب تحويله إلى كائن ليكون مفيدًا في التعليمات البرمجية الخاصة بك.
لنبدأ بأخذ سلسلة JSON وتحويلها إلى شيء يمكننا العمل به — كائن JavaScript. نقوم بذلك باستخدام JSON.parse().
مثال: تحليل JSON
const jsonString = '{"name": "Alice", "age": 25, "city": "Wonderland"}'; const jsonObject = JSON.parse(jsonString); console.log(jsonObject.name); // Output: Alice
يأخذ هذا سلسلة JSON، ويوزعها، ويحولها إلى كائن JavaScript. يمكنك الآن الوصول إلى خصائصه مثل الاسم أو العمر أو المدينة.
ماذا لو كنت بحاجة إلى إرسال بياناتك بتنسيق JSON؟ وهنا يأتي دور JSON.stringify(). فهو يأخذ كائن JavaScript الخاص بك ويحوله إلى سلسلة JSON.
مثال: تحويل كائن إلى JSON
const user = { name: "Alice", age: 25, city: "Wonderland" }; const jsonString = JSON.stringify(user); console.log(jsonString); // Output: {"name":"Alice","age":25,"city":"Wonderland"}
يعد هذا مفيدًا جدًا عند إنشاء واجهات برمجة التطبيقات أو تخزين البيانات بتنسيق JSON.
هل تحتاج إلى العمل مع ملفات JSON؟ يجعل Node.js الأمر سهلاً باستخدام وحدة fs (نظام الملفات). يمكنك قراءة وكتابة ملفات JSON دون الكثير من المتاعب.
مثال: قراءة ملف JSON
const fs = require('fs'); fs.readFile('data.json', 'utf8', (err, data) => { if (err) { console.error(err); return; } const jsonData = JSON.parse(data); console.log(jsonData); });
هنا، نستخدم fs.readFile() لقراءة ملف JSON، ثم تحليل محتوى الملف إلى كائن JavaScript. الآن يمكنك أن تفعل ما تريد مع البيانات!
مثال: الكتابة إلى ملف JSON
const fs = require('fs'); const user = { name: "Alice", age: 25, city: "Wonderland" }; fs.writeFile('output.json', JSON.stringify(user, null, 2), (err) => { if (err) { console.error(err); return; } console.log('Data saved to output.json'); });
في هذه الحالة، يقوم JSON.stringify() بتحويل الكائن إلى سلسلة JSON لطيفة ومنسقة، ويقوم fs.writeFile() بحفظه في ملف. سهل!
عند إنشاء واجهات برمجة التطبيقات، يكون JSON هو التنسيق المفضل لإرسال البيانات واستلامها. في Express.js، يمكنك إرسال واستقبال بيانات JSON دون عناء.
مثال: إرسال JSON في الرد
const express = require('express'); const app = express(); app.get('/user', (req, res) => { const user = { name: "Alice", age: 25, city: "Wonderland" }; res.json(user); }); app.listen(3000, () => console.log('Server running on port 3000'));
هنا، نرسل كائن JSON كرد على طلب HTTP GET. الأمر بسيط مثل استدعاء res.json()!
مثال: تلقي JSON في طلب
app.use(express.json()); // Middleware to parse JSON body app.post('/user', (req, res) => { const user = req.body; console.log(user); // Output: { name: "Alice", age: 25, city: "Wonderland" } res.send('User received!'); });
في هذا المثال، نستخدم البرنامج الوسيط Express.json() لتحليل بيانات JSON الواردة تلقائيًا من نص الطلب، وتحويلها إلى كائن JavaScript يمكننا استخدامه.
ماذا لو حصلت على بيانات JSON سيئة؟ لا داعي للقلق — يحتوي Node.js على معالجة مدمجة للأخطاء. دعونا نرى كيفية اكتشاف هذه الأخطاء.
مثال: التعامل مع أخطاء التحليل
const faultyJson = '{"name": "Alice", "age": 25'; // Oops, missing closing bracket try { const jsonObj = JSON.parse(faultyJson); } catch (error) { console.error('Failed to parse JSON:', error.message); }
إذا كان JSON معطلاً، فسيقوم JSON.parse() بإلقاء خطأ. في هذه الحالة، تساعدنا كتلة محاولة الالتقاط على التعامل معها بأمان.
JSON أمر لا بد من معرفته إذا كنت تعمل مع البيانات في Node.js. سواء كنت تقوم بتحليل بيانات JSON أو إنشائها أو قراءتها أو إرسالها، فإن الأساليب المضمنة في Node.js تجعل الأمر بسيطًا. استخدم JSON.parse() لتحويل السلاسل إلى كائنات، وJSON.stringify() للانتقال إلى الاتجاه الآخر، وExpress.js للتعامل السلس مع JSON في واجهة برمجة التطبيقات الخاصة بك.
استمتع بالعمل مع JSON، وستحصل على واحدة من أكثر الأدوات قيمة في مجموعة أدوات المطور لديك!
شكرًا لك على القراءة، وسعيدة بالبرمجة! ?
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3