الانتقال إلى الأداة
ViewCSV
الملفات تبقى على جهازك

تحويل CSV إلى JSON

orders.csv· بيانات نموذجية15 صفًا · 8 أعمدة
أنواع القيم
يتم الاكتشاف لكل عمود على حدة، وفقط إذا ناسبت كل قيمه النوع، لذا تبقى نصًا المعرّفات التي تبدأ بأصفار والأعداد الصحيحة التي تتجاوز ⁦9,007,199,254,740,991⁩.
يصبح العمودان ⁦user.name⁩ و⁦user.email⁩ كائنًا واحدًا باسم «⁦user⁩» يضم «⁦name⁩» و«⁦email⁩».
[
  {
    "order_id": "001041",
    "customer": "عمر القحطاني",
    "city": "تونس",
    "product": "Chair, ergonomic",
    "quantity": "6",
    "unit_price": "144.56",
    "order_date": "2026-01-24",
    "status": "refunded"
  },
  {
    "order_id": "001042",
    "customer": "سارة المصري",
    "city": "الدوحة",
    "product": "Monitor 27\"",
    "quantity": "9",
    "unit_price": "161.36",
    "order_date": "2026-02-21",
    "status": "shipped"
  },
  {
    "order_id": "001043",
    "customer": "خالد الخطيب",
    "city": "عمّان",
    "product": "Desk lamp",
    "quantity": "5",
    "unit_price": "170.88",
    "order_date": "2026-03-27",
    "status": "shipped"
  },
  {
    "order_id": "001044",
    "customer": "فاطمة الحربي",
    "city": "دبي",
    "product": "Desk lamp",
    "quantity": "1",
    "unit_price": "161.16",
    "order_date": "2026-04-24",
    "status": "pending"
  },
  {
    "order_id": "001045",
    "customer": "نور الزهراني",
    "city": "عمّان",
    "product": "Notebook A5",
    "quantity": "1",
    "unit_price": "",
    "order_date": "2026-05-02",
    "status": "refunded"
  },
  {
    "order_id": "001046",
    "customer": "هدى الدوسري",
    "city": "الدوحة",
    "product": "Monitor 27\"",
    "quantity": "2",
    "unit_price": "211.63",
    "order_date": "2026-06-17",
    "status": "shipped"
  },
  {
    "order_id": "001047",
    "customer": " علي القحطاني ",
    "city": "عمّان",
    "product": "Coffee beans 1kg",
    "quantity": "2",
    "unit_price": "57.05",
    "order_date": "2026-07-09",
    "status": "shipped"
  },
  {
    "order_id": "001048",
    "customer": "عمر المصري",
    "city": "الدار البيضاء",
    "product": "Desk lamp",
    "quantity": "9",
    "unit_price": "216.89",
    "order_date": "2026-08-13",
    "status": "shipped"
  },
  {
    "order_id": "001049",
    "customer": "أحمد الحربي",
    "city": "الرياض",
    "product": "USB-C cable",
    "quantity": "5",
    "unit_price": "133.18",
    "order_date": "2026-09-01",
    "status": "shipped"
  },
  {
    "order_id": "001050",
    "customer": "يوسف الدوسري",
    "city": "عمّان",
    "product": "USB-C cable",
    "quantity": "4",
    "unit_price": "242.50",
    "order_date": "2026-01-22",
    "status": "pending"
  },
  {
    "order_id": "001051",
    "customer": "أحمد الشمري",
    "city": "القاهرة",
    "product": "Desk lamp",
    "quantity": "2",
    "unit_price": "217.96",
    "order_date": "2026-02-06",
    "status": "refunded"
  },
  {
    "order_id": "001052",
    "customer": "عمر الحسن",
    "city": "جدة",
    "product": "Desk lamp",
    "quantity": "6",
    "unit_price": "12.86",
    "order_date": "2026-03-18",
    "status": "shipped"
  },
  {
    "order_id": "001053",
    "customer": "أحمد السيد",
    "city": "دبي",
    "product": "USB-C cable",
    "quantity": "9",
    "unit_price": "158.31",
    "order_date": "2026-04-13",
    "status": "pending"
  },
  {
    "order_id": "001054",
    "customer": "عمر الدوسري",
    "city": "الدار البيضاء",
    "product": "Notebook A5",
    "quantity": "7",
    "unit_price": "30.61",
    "order_date": "2026-05-07",
    "status": "shipped"
  },
  {
    "order_id": "001043",
    "customer": "خالد الخطيب",
    "city": "عمّان",
    "product": "Desk lamp",
    "quantity": "5",
    "unit_price": "170.88",
    "order_date": "2026-03-27",
    "status": "shipped"
  }
]

15 صفًا · 1 ملف

بعد فتح ملف CSV أو لصقه يظهر JSON بجوار الخيارات ويتحدّث مع تغييرها. افتراضيًا يصبح كل صف كائنًا مفاتيحه أسماء الأعمدة؛ ويمكن اختيار مصفوفة مصفوفات أو كائن من مصفوفات الأعمدة أو ⁦JSON Lines⁩ إذا كانت الشيفرة المستقبِلة تتوقع هذه البنية. وتبقى كل قيمة سلسلة نصية افتراضيًا، فتخرج ⁦00731⁩ والمعرّفات المكوّنة من 20 خانة كما كانت تمامًا؛ ولا يُفعَّل اكتشاف الأرقام إلا إذا وجب أن يصبح عمود ما أرقام JSON وقيم ⁦true⁩/⁦false⁩. ولملفات الإعدادات، تكتب أداة CSV إلى YAML الصفوف نفسها بصيغة YAML. يُحوَّل الملف في متصفحك ولا يُرفع أبدًا.

طريقة تحويل CSV إلى JSON

  1. افتح ملف ⁦.csv⁩ أو ⁦.tsv⁩ أو ⁦.txt⁩، أو أفلته على الأداة، أو الصق الصفوف. يُكتشف المحدِّد وعلامة ترتيب البايت لـ⁦UTF-8⁩ أو ⁦UTF-16⁩؛ ولاختيار محدِّد آخر أو ترميز قديم مثل ⁦Windows-1252⁩ أو ⁦Windows-1256⁩ أو ⁦Shift_JIS⁩ توجد إعدادات الاستيراد.
  2. اختر بنية JSON. تعرض المعاينة أول 200 صف من الناتج نفسه الذي سيحتويه الملف المنزَّل.
  3. اضبط أنواع القيم والخلايا الفارغة والتداخل والمسافة البادئة، ثم اختر تنزيل JSON أو نسخ.

لتحويل ملفات كثيرة بالإعدادات نفسها، اختر دفعة واحدة: تحويل عدة ملفات وحدِّدها معًا: يُحوَّل كل ملف بدوره، وتُنزَّل النتائج في ملف ZIP واحد.

خيارات ناتج JSON: كائنات أو مصفوفات أو ⁦JSON Lines⁩

مصفوفة كائناتكائن لكل صف، مفاتيحه من صف العناوين: ⁦[{"sku": "00731", …}]⁩. وهي البنية التي تتوقعها أغلب واجهات API وشيفرات JavaScript.
مصفوفة مصفوفاتصف العناوين أولًا، ثم كل صف قائمةً. أصغر ناتج، مع حفظ ترتيب الأعمدة صراحةً.
كائن من مصفوفات الأعمدة⁦{"sku": ["00731", "00732"], …}⁩: مناسب لمكتبات المخططات وأدوات إطارات البيانات (data frames).
JSON Linesكائن JSON واحد في كل سطر (JSON Lines)، دون مصفوفة محيطة. يناسب مسارات السجلات والتحميل إلى BigQuery والمعالجة سطرًا بسطر.
إبقاء كل القيم نصًاتصبح كل خلية سلسلة JSON نصية كما كُتبت في الملف تمامًا. وهذا هو الافتراضي.
اكتشاف الأرقام وقيم ⁦true/false⁩لا يصبح العمود أرقام JSON إلا إذا كانت كل قيمه غير الفارغة أرقامًا بسيطة تبقى سليمة بعد التحويل: بلا أصفار في البداية، و15 رقمًا معنويًا على الأكثر، وبلا فاصلة عشرية. وتصبح أعمدة ⁦true⁩/⁦false⁩ قيمًا منطقية. وتبقى التواريخ سلاسل نصية.
الخلايا الفارغةكتابة ⁦""⁩ أو ⁦null⁩، أو حذف المفتاح من ذلك الكائن.
تداخل أسماء الأعمدة المنقوطةيصبح ⁦user.name⁩ و⁦user.email⁩ ⁦{"user": {"name": …, "email": …}}⁩. وإذا كان اسم ما قيمةً وأصلًا في آن واحد (⁦user⁩ و⁦user.name⁩)، تبقى هذه الأعمدة مسطّحة وتنبّهك الأداة.

العناوين والقيم بين علامات الاقتباس والمعرّفات في JSON

  • الفواصل وعلامات الاقتباس (⁦""⁩) وفواصل الأسطر داخل قيمة محاطة بعلامات اقتباس تُقرأ وفق RFC 4180، وتُكتب بتهريب JSON المعتاد (⁦\n⁩، ⁦\"⁩).
  • تُستخدم أسماء العناوين كما كُتبت تمامًا، بما فيها المسافات والكتابة العربية وغير اللاتينية. يصبح العنوان الفارغ ⁦Column 3⁩ والمكرر ⁦name (2)⁩، فلا تُكتب قيمة فوق أخرى.
  • العناوين مثل ⁦__proto__⁩ أو ⁦constructor⁩ تُكتب مفاتيح عادية.
  • الصف الذي فيه قيم أكثر من صف العناوين يحصل على مفاتيح إضافية باسم ⁦Column 4⁩ و⁦Column 5⁩…؛ والصف الأقصر يحصل على قيم فارغة. ولا يُحذف شيء.
  • الناتج ذو الأنواع لا يحوّل أبدًا ⁦0012⁩ إلى ⁦12⁩، ولا رقم طلب من 19 خانة إلى عدد عائم مقرَّب: يبقى هذا العمود نصًا.

مشكلات شائعة في تحويل CSV إلى JSON

  • كل البيانات في مفتاح واحد. خُمِّن المحدِّد خطأً؛ اختر فاصلة أو فاصلة منقوطة أو علامة جدولة أو خطًا عموديًا من «إعدادات الاستيراد» وافتح الملف من جديد.
  • تظهر الحروف العربية أو ذات العلامات رموزًا مثل é. الملف ليس بترميز ⁦UTF-8⁩. اختر ترميزه من «إعدادات الاستيراد» (غالبًا ⁦Windows-1252⁩ في ملفات Excel القديمة، و⁦Windows-1256⁩ في الملفات العربية القديمة).
  • بقي عمود أرقام نصًا. قيمة واحدة على الأقل ليست رقمًا بسيطًا، مثل ⁦1,5⁩ أو ⁦12 kg⁩ أو قيمة تبدأ بصفر. ابحث في العمود في عارض CSV لإيجادها.
  • خطأ علامات الاقتباس يذكر سجلًا. في ذلك السجل علامة اقتباس فُتحت ولم تُغلق. أصلِحها في محرر CSV أو راجع التصدير من النظام المصدر.

الحدود والخصوصية

الملفات حتى 25 ميغابايت أو 100 ألف صف أو مليوني خلية تُفتح مع معاينة مباشرة. أما الملفات الأكبر فتُحوَّل تدفقيًا: يُقرأ الملف مرتين على أجزاء (مرة لمعرفة الأعمدة والأنواع، ومرة للكتابة)، وتحل محل المعاينة ملاحظة، ويشمل الملف المنزَّل كل الصفوف. والحد الأقصى لملف الناتج الواحد 4 غيغابايت.

يجري التحويل في عامل خلفي داخل علامة التبويب هذه، فتبقى الصفحة مستجيبة ويوقفه زر إلغاء. ولا يُرسل ملف CSV أبدًا إلى أي خادم.

مثال: قائمة منتجات بصيغة كائنات JSON

قائمة منتجات فيها رمز SKU مسبوق بصفر وفاصلة داخل علامتي اقتباس، حُوّلت بالإعدادات الافتراضية (كل القيم نص، مصفوفة كائنات، مسافة بادئة من مسافتين). ومع اكتشاف الأرقام وقيم ⁦true/false⁩ يصبح price ⁦34.9⁩ وin_stock ⁦true⁩، بينما يبقى sku ⁦"00731"⁩.

CSV
sku,name,price,in_stock
00731,"Desk lamp, brass",34.90,true
00732,Cable tidy,4.50,false
JSON
[
  {
    "sku": "00731",
    "name": "Desk lamp, brass",
    "price": "34.90",
    "in_stock": "true"
  },
  {
    "sku": "00732",
    "name": "Cable tidy",
    "price": "4.50",
    "in_stock": "false"
  }
]

أسئلة وأجوبة

لماذا تكون الأرقام بين علامتي اقتباس افتراضيًا؟

لأن CSV لا يعرف الأنواع: ⁦00731⁩ و⁦1.50⁩ و⁦2024-03-01⁩ كلها نص لا أكثر. وإبقاؤها سلاسل نصية يضمن أن يقول JSON ما قاله الملف تمامًا. واختر اكتشاف الأرقام عندما تعرف أن عمودًا ما يحمل كميات.

هل يمكن تحويل JSON إلى CSV هنا؟

ليس بعد. تحوّل هذه الصفحة ملفات CSV وTSV إلى JSON فقط.

هل JSON Lines هو نفسه NDJSON؟

نعم عمليًا: كلاهما يعني قيمة JSON كاملة واحدة في كل سطر، تفصل بينها أحرف السطر الجديد.

المعايير والمراجع