بعد فتح ملف CSV أو لصقه يظهر JSON بجوار الخيارات ويتحدّث مع تغييرها. افتراضيًا يصبح كل صف كائنًا مفاتيحه أسماء الأعمدة؛ ويمكن اختيار مصفوفة مصفوفات أو كائن من مصفوفات الأعمدة أو JSON Lines إذا كانت الشيفرة المستقبِلة تتوقع هذه البنية. وتبقى كل قيمة سلسلة نصية افتراضيًا، فتخرج 00731 والمعرّفات المكوّنة من 20 خانة كما كانت تمامًا؛ ولا يُفعَّل اكتشاف الأرقام إلا إذا وجب أن يصبح عمود ما أرقام JSON وقيم true/false. ولملفات الإعدادات، تكتب أداة CSV إلى YAML الصفوف نفسها بصيغة YAML. يُحوَّل الملف في متصفحك ولا يُرفع أبدًا.
طريقة تحويل CSV إلى JSON
- افتح ملف
.csv أو .tsv أو .txt، أو أفلته على الأداة، أو الصق الصفوف. يُكتشف المحدِّد وعلامة ترتيب البايت لـUTF-8 أو UTF-16؛ ولاختيار محدِّد آخر أو ترميز قديم مثل Windows-1252 أو Windows-1256 أو Shift_JIS توجد إعدادات الاستيراد. - اختر بنية JSON. تعرض المعاينة أول 200 صف من الناتج نفسه الذي سيحتويه الملف المنزَّل.
- اضبط أنواع القيم والخلايا الفارغة والتداخل والمسافة البادئة، ثم اختر تنزيل 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".
sku,name,price,in_stock 00731,"Desk lamp, brass",34.90,true 00732,Cable tidy,4.50,false
[
{
"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 كاملة واحدة في كل سطر، تفصل بينها أحرف السطر الجديد.