DeveloperBreeze

JSON (JavaScript Object Notation) هو تنسيق شائع لتبادل البيانات بين الخوادم والمتصفحات، وهو خفيف الوزن وقابل للقراءة بسهولة لكل من البشر والآلات. يتميز JSON بأنه مدعوم بشكل مباشر في JavaScript، حيث يمكن تحويل البيانات إلى تنسيق JSON أو قراءة البيانات من JSON بسهولة.

في هذا الدليل، سنتعلم كيفية التعامل مع JSON في JavaScript، بما في ذلك قراءة البيانات وكتابتها.


1. ما هو JSON؟

JSON هو تنسيق يستخدم في تبادل البيانات يشبه الكائنات في JavaScript. يتكون JSON من أزواج مفتاح-قيمة (key-value pairs) تمامًا مثل الكائنات، وهو مدعوم في معظم لغات البرمجة.

مثال على JSON:

{
    "name": "أحمد",
    "age": 30,
    "isMarried": false,
    "children": ["سارة", "علي"]
}
  • name: المفتاح (key) و "أحمد" هي القيمة (value).
  • age: المفتاح و 30 هي القيمة.
  • isMarried: المفتاح و false هي القيمة (من النوع المنطقي).
  • children: المفتاح و ["سارة", "علي"] هي مصفوفة.

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

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

مثال:

const person = {
    name: "أحمد",
    age: 30,
    isMarried: false,
    children: ["سارة", "علي"]
};

const jsonString = JSON.stringify(person);
console.log(jsonString);

النتيجة:

{"name":"أحمد","age":30,"isMarried":false,"children":["سارة","علي"]}

3. تحويل JSON إلى كائن باستخدام JSON.parse()

عند استلام بيانات JSON من خادم، يمكنك تحويل هذه البيانات إلى كائنات JavaScript باستخدام JSON.parse(). هذه الدالة تأخذ سلسلة JSON وتحولها إلى كائن JavaScript يمكنك التعامل معه.

مثال:

const jsonString = '{"name":"أحمد","age":30,"isMarried":false,"children":["سارة","علي"]}';

const person = JSON.parse(jsonString);
console.log(person.name);  // أحمد
console.log(person.age);   // 30

4. قراءة بيانات JSON من API

غالبًا ما يتم استخدام JSON في التفاعل مع واجهات برمجية (APIs) لجلب البيانات من الخادم. يمكنك استخدام fetch() في JavaScript لطلب بيانات JSON من API.

مثال:

fetch('https://jsonplaceholder.typicode.com/users/1')
    .then(response => response.json())
    .then(data => {
        console.log(data);
        console.log("الاسم:", data.name);
    })
    .catch(error => {
        console.error("حدث خطأ:", error);
    });

في هذا المثال، نستخدم fetch() لطلب بيانات من API، ثم نستخدم response.json() لتحويل الاستجابة إلى كائن JSON يمكننا التعامل معه.

5. كتابة بيانات JSON إلى ملف

في JavaScript (في بيئات Node.js)، يمكنك أيضًا كتابة بيانات JSON إلى ملف. أولاً، تحتاج إلى تحويل الكائن إلى JSON باستخدام JSON.stringify()، ثم استخدام الوحدة fs لكتابة البيانات إلى ملف.

مثال في Node.js:

const fs = require('fs');

const person = {
    name: "أحمد",
    age: 30,
    isMarried: false,
    children: ["سارة", "علي"]
};

const jsonString = JSON.stringify(person, null, 2);

fs.writeFile('person.json', jsonString, (err) => {
    if (err) {
        console.error('حدث خطأ أثناء الكتابة إلى الملف', err);
    } else {
        console.log('تم كتابة الملف بنجاح!');
    }
});

6. التعامل مع JSON المعقد

قد يحتوي JSON على بيانات متداخلة مثل الكائنات داخل كائنات أو مصفوفات داخل كائنات. يمكنك التعامل مع هذه البيانات بنفس الطريقة التي تتعامل بها مع الكائنات والمصفوفات في JavaScript.

مثال:

{
    "name": "أحمد",
    "address": {
        "city": "الرياض",
        "postalCode": "12345"
    },
    "skills": ["برمجة", "تصميم", "تحليل"]
}

الوصول إلى البيانات المتداخلة:

const data = {
    name: "أحمد",
    address: {
        city: "الرياض",
        postalCode: "12345"
    },
    skills: ["برمجة", "تصميم", "تحليل"]
};

console.log(data.address.city);  // الرياض
console.log(data.skills[0]);     // برمجة

7. التعامل مع الأخطاء أثناء تحويل JSON

أحيانًا قد تواجه أخطاء أثناء تحويل JSON، سواء كان ذلك بسبب تنسيق غير صالح أو مشكلة أخرى. يمكنك استخدام try...catch لمعالجة الأخطاء.

مثال:

const invalidJson = '{"name": "أحمد", "age": 30,';  // JSON غير مكتمل

try {
    const person = JSON.parse(invalidJson);
    console.log(person);
} catch (error) {
    console.error("خطأ في تحويل JSON:", error.message);
}

8. الاستخدامات العملية لـ JSON

1. التفاعل مع APIs:

عادة ما تستخدم JSON لجلب البيانات من APIs مثل بيانات الطقس، المستخدمين، أو المنتجات.

2. تخزين البيانات:

يمكنك تخزين بيانات المستخدم محليًا في المتصفح باستخدام localStorage أو sessionStorage عن طريق تحويل الكائنات إلى JSON.

3. نقل البيانات:

عند إرسال بيانات من الواجهة الأمامية إلى الخادم، يتم عادة تحويل البيانات إلى تنسيق JSON.


9. الخاتمة

التعامل مع JSON هو جزء أساسي من تطوير تطبيقات الويب الحديثة. سواء كنت تحتاج إلى جلب البيانات من API أو كتابة بيانات إلى خادم، فإن فهم كيفية قراءة وكتابة JSON سيساعدك في بناء تطبيقات قوية وقابلة للتوسيع.

من خلال هذا الدليل، تعلمنا كيفية تحويل الكائنات إلى JSON باستخدام JSON.stringify()، وكيفية قراءة بيانات JSON باستخدام JSON.parse()، وكذلك كيفية جلب البيانات من API والتعامل مع JSON المعقد.


نصائح إضافية:

  1. التجربة والممارسة: حاول التعامل مع بيانات JSON من واجهات برمجية (APIs) وتجربة قراءة وكتابة البيانات بنفسك.
  2. التحقق من البيانات: تأكد دائمًا من أن بيانات JSON صالحة قبل محاولة تحويلها.
  3. استخدام أدوات JSON: استخدم أدوات مثل JSONLint للتحقق من صحة تنسيق JSON الخاص بك.

Continue Reading

Discover more amazing content handpicked just for you

Article

العمل الحر والربح من البرمجة

  • طوّر نفسك باستمرار.
  • قدّم جودة عالية في كل مشروع.
  • كن حكيمًا في إدارة دخلك.
  • حافظ على توازن بين حياتك وعملك.
  • ابنِ شبكة علاقات مهنية قوية.
  • الصبر والمثابرة هما سر النجاح.

ابدأ الآن، استثمر في نفسك، وابنِ مستقبلك كمبرمج حر ناجح.

Mar 29, 2025
Read More
Tutorial
javascript css +1

دليل شامل لتطوير الويب: بناء موقع بسيط باستخدام HTML, CSS وJavaScript

HTML هي لغة ترميز تساعدك في إنشاء الهيكل الأساسي لصفحة الويب. إليك الهيكل الأساسي لموقع ويب بسيط:

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>موقعي الشخصي</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <header>
        <h1>مرحباً بكم في موقعي</h1>
        <nav>
            <ul>
                <li><a href="#home">الرئيسية</a></li>
                <li><a href="#about">من أنا</a></li>
                <li><a href="#contact">تواصل معي</a></li>
            </ul>
        </nav>
    </header>

    <section id="home">
        <h2>مقدمة</h2>
        <p>هذا هو موقعي الشخصي حيث أشارك فيه أفكاري ومشاريعي.</p>
    </section>

    <section id="about">
        <h2>من أنا</h2>
        <p>أنا مطور ويب مهتم بتقنيات الويب الحديثة وتطوير التطبيقات.</p>
    </section>

    <section id="contact">
        <h2>تواصل معي</h2>
        <form id="contact-form">
            <label for="name">الاسم:</label>
            <input type="text" id="name" name="name" required>

            <label for="email">البريد الإلكتروني:</label>
            <input type="email" id="email" name="email" required>

            <label for="message">رسالتك:</label>
            <textarea id="message" name="message" required></textarea>

            <button type="submit">إرسال</button>
        </form>
    </section>

    <footer>
        <p>© 2024 جميع الحقوق محفوظة</p>
    </footer>

    <script src="scripts.js"></script>
</body>
</html>

Sep 27, 2024
Read More
Tutorial
javascript

مكتبة jQuery: استخدام JavaScript بسهولة وفعالية

  • عند النقر على الزر، سيتم إخفاء النص إذا كان ظاهرًا، أو إظهاره إذا كان مخفيًا باستخدام .toggle().
$('#text').fadeOut();  // تلاشي العنصر
$('#text').fadeIn();   // إظهار العنصر مرة أخرى

Sep 26, 2024
Read More
Tutorial
javascript

كيفية بناء تطبيقات تفاعلية باستخدام JavaScript و HTML و CSS

من خلال الجمع بين HTML، CSS، و JavaScript، يمكنك بناء تطبيقات ويب تفاعلية بسهولة. يتفاعل التطبيق مع المستخدم بناءً على مدخلاته، ويقوم بعرض المعلومات المناسبة. هذا الدليل قدم لك أساسيات بناء تطبيق بسيط، ولكن يمكنك توسيع المفاهيم لتشمل ميزات أكثر تعقيدًا، مثل التعامل مع API، الحركات، وإدارة البيانات.

نصائح إضافية:

Sep 26, 2024
Read More
Tutorial
javascript

البرمجة الكائنية (OOP) في JavaScript: المفاهيم الأساسية والتطبيقات

البرمجة الكائنية (OOP) في JavaScript تمنحك القدرة على كتابة كود أكثر تنظيماً وقابلية للصيانة. من خلال الفئات، الكائنات، التغليف، الوراثة، وتعدد الأشكال، يمكنك بناء تطبيقات معقدة بطريقة سهلة ومبسطة. OOP هو مفهوم قوي يساعدك في بناء مشاريع متطورة وقابلة للتوسيع مع مرور الوقت.

نصائح إضافية:

Sep 26, 2024
Read More
Tutorial
javascript

دليل للمبتدئين في JavaScript: تعلم الأساسيات

let name = "محمد";
const age = 25;

console.log("الاسم: " + name);
console.log("العمر: " + age);

JavaScript تدعم عدة أنواع من البيانات مثل:

Sep 26, 2024
Read More
Tutorial
javascript

AJAX with JavaScript: A Practical Guide

Before the Fetch API, the traditional way to make AJAX requests was using XMLHttpRequest.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AJAX with XMLHttpRequest</title>
</head>
<body>
    <button id="fetchDataBtn">Fetch Data</button>
    <div id="dataOutput"></div>

    <script>
        document.getElementById('fetchDataBtn').addEventListener('click', function() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', 'https://jsonplaceholder.typicode.com/posts/1', true);

            xhr.onload = function() {
                if (this.status === 200) {
                    var data = JSON.parse(this.responseText);
                    document.getElementById('dataOutput').innerHTML = `
                        <h3>${data.title}</h3>
                        <p>${data.body}</p>
                    `;
                }
            };

            xhr.onerror = function() {
                console.error('Request failed.');
            };

            xhr.send();
        });
    </script>
</body>
</html>

Sep 18, 2024
Read More
Tutorial
javascript

Creating a Personal Dashboard with React and APIs: Keep Your Dev Life Organized

Create a TodoList.js file for managing tasks:

import React, { useState } from 'react';

const TodoList = () => {
  const [tasks, setTasks] = useState([]);
  const [newTask, setNewTask] = useState('');

  const addTask = () => {
    if (newTask.trim()) {
      setTasks([...tasks, newTask]);
      setNewTask('');
    }
  };

  return (
    <div>
      <input
        type="text"
        value={newTask}
        onChange={(e) => setNewTask(e.target.value)}
        placeholder="Enter a task"
      />
      <button onClick={addTask}>Add Task</button>
      <ul>
        {tasks.map((task, index) => (
          <li key={index}>{task}</li>
        ))}
      </ul>
    </div>
  );
};

export default TodoList;

Aug 20, 2024
Read More
Tutorial
go

Building a RESTful API with Go and Gorilla Mux

   curl -X GET http://localhost:8000/books
   curl -X POST http://localhost:8000/books -H "Content-Type: application/json" -d '{"title":"Go Programming","author":"John Doe","year":"2024"}'

Aug 12, 2024
Read More
Code
javascript json

How to Deep Clone a JavaScript Object

No preview available for this content.

Aug 12, 2024
Read More
Tutorial
javascript

Building a Modern Web Application with React and Redux

   import React from 'react';
   import Counter from './Counter';

   const App = () => {
     return (
       <div className="App">
         <h1>React and Redux Counter</h1>
         <Counter />
       </div>
     );
   };

   export default App;

Congratulations! You have successfully set up a React application with Redux for state management. You created a simple counter application to demonstrate the integration of Redux in a React project. From here, you can explore more advanced concepts like middleware, asynchronous actions, and integrating APIs to build more complex applications.

Aug 05, 2024
Read More
Code
json python

Python Code Snippet: Simple RESTful API with FastAPI

No preview available for this content.

Aug 04, 2024
Read More
Code
javascript json

JavaScript Code Snippet: Fetch and Display Data from an API

No preview available for this content.

Aug 04, 2024
Read More
Tutorial
python

Creating a Simple REST API with Flask

  curl http://127.0.0.1:5000/api/items
  • Get a specific item:

Aug 03, 2024
Read More
Code
javascript

Fetch JSON Data from API in JavaScript

No preview available for this content.

Jan 26, 2024
Read More
Code
python

JSON Serialization and Deserialization

No preview available for this content.

Jan 26, 2024
Read More
Code
python

Read JSON Data from a File

No preview available for this content.

Jan 26, 2024
Read More
Code
php

JSON File Reading and Decoding

$jsonString = file_get_contents('data.json');
$data = json_decode($jsonString, true);
print_r($data);

Jan 26, 2024
Read More
Code
bash

Various cURL Examples for API Interactions

No preview available for this content.

Jan 26, 2024
Read More
Code
json python

Append Data to JSON File

No preview available for this content.

Jan 26, 2024
Read More

Discussion 0

Please sign in to join the discussion.

No comments yet. Start the discussion!