اذهب إلى المحتوى
  • 0

كيف يمكن قراءة بيانات من ملف JSON في node.js

Bassel Jhr

السؤال

لدي ملف JSON منفصل بداخله مجموعة من الأغراض objects. لقد قمت ببعض المحاولات لقراءة الملف وبتغيير اللاحقة إلى ملف نصي أو .js ولكن لم أستطع الوصول إليها.

ماهي لاحقة الملف الأفضل في هذه الحالة؟ وكيف يمكنني الوصول إلى غرض ما ضمن هذا الملف؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

سيكون امتداد الملف هو 

.json

بحيث فلنفترض أن لدينا ملف اسمه constant.json و به المعلومات التالية 

{
    "data": [
        {
            "id" : 1,
            "name": "Jakets",
        },
        {
            "id" : 2,
            "name": "Sports",
        },
        
    ]
}

فيمكننا الوصول إلى الملف و قراءة محتوياته باستخدام node js باستخدام دالة readFileSync بهذه الطريقة 

const fs = require('fs');
let file = fs.readFileSync('constant.json');
let data = JSON.parse(file);
console.log(data);

ايضا يمكننا قراءة الملف و جلب محتوياته باستخدام دالة readFile بهذا الشكل 

const fs = require('fs');
fs.readFileSync('constant.json', (err, file) => {
	if(err) throw err;
	let data = JSON.parse(file);
	console.log(data);
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك استخدام المكتبة fs للقيام بعمليات القراءة والكتابة:

const fs = require('fs');
// القراءة
let rawdata = fs.readFileSync('file.json');
let punishments= JSON.parse(rawdata);
console.log(punishments);
//json للتشييك على محتويات ملف ال  punishments  الآن يمكنك استخدام المتغير 

أيضاً يمكنك تغيير محتويات الملف (الموجودة حالياً في المتغيرpunishments):

// الكتابة
let data = JSON.stringify(punishments);
fs.writeFileSync('file.json', data);

الكود الكامل:

const fs = require('fs');
// read
let rawdata = fs.readFileSync('file.json');
let punishments= JSON.parse(rawdata);
console.log(punishments);
// write
let data = JSON.stringify(punishments);
fs.writeFileSync('file.json', data);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك استخدام طريقة أحدث مثل استخدام ال ES6 module  و async/await كما في المثال التالي 

لاحظ أنه عملية القراءة ستكون asynchronous 

import { readFile } from 'fs/promises';

let data = JSON.parse(await readFile("filename.json", "utf8"));

ويمكنك إضافة ال try ,catch كما في المثال التالي

import { readFile } from 'fs/promises';

try {
  const controller = new AbortController();
  const { signal } = controller;
  const promise = readFile(fileName, { signal });

  controller.abort();

  await promise;
} catch (err) {
  console.error(err);
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

اذا كان الملف متوفر في مشروعك و كان جل ما تريده هو الوصول للمعلومات المتوفرة في ملف ال json فأنت لا يجب عليك استخدام fs على الاطلاق بل فقط قم بجلب الملف كأنه module 

let jsonData = require('./file.json');

console.log(jsonData);

require مصممة أيضا للتعامل مع ملفات json وتعمل لها parse تلقائيا 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...