تحويل JSON إلى CSV
الصق JSON وحوّله فوراً إلى صيغة CSV. يتعامل مع الكائنات المتداخلة والمصفوفات ومجموعات البيانات الكبيرة. محلي بالكامل داخل متصفحك، بياناتك لا تغادر جهازك أبداً.
كيفية تحويل JSON إلى CSV اونلاين
JSON هو ما تُعيده تقريباً كل واجهة برمجة تطبيقات، وهو مناسب طبيعياً للكود: كائنات تتداخل داخل كائنات، ومصفوفات تحمل مزيداً من الكائنات، ويستطيع أي برنامج المشي عبر تلك البنية دون عناء يُذكر. لكن جدول البيانات لا يعمل بهذه الطريقة. يتوقع Excel وGoogle Sheets وكل شاشة استيراد CSV شبكة مسطّحة من الصفوف والأعمدة، فبمجرد أن يحتاج أحد إلى تسليم بيانات JSON لمسوّق أو محلل بيانات أو عميل يعيش داخل Excel، يضطر شخص ما لإعادة تشكيلها. هذه الأداة تقوم بذلك التشكيل بالكامل داخل متصفحك، خلال الوقت الذي يستغرقه اللصق والنقر على زر واحد.
شكل الإدخال أقل أهمية مما يتوقعه الناس عادة. يمكنك لصق كائن JSON واحد، مثل استجابة استدعاء واجهة برمجية واحد، أو مصفوفة من الكائنات، مثل قائمة صفوف قاعدة بيانات مُصدَّرة كـ JSON. في الحالتين يقوم المحوّل بتطبيع ما لصقته إلى مجموعة من السجلات، ويحدد كل عنوان عمود تحتاجه تلك السجلات فيما بينها، ثم يكتب ملف CSV صحيحاً بصف عناوين واحد يتبعه صف واحد لكل سجل.
دليل التحويل خطوة بخطوة
- الصق JSON الخاص بك. ضع كائناً واحداً أو مصفوفة من الكائنات داخل مربع "JSON Input". يمكن أن يأتي من استجابة API، أو تصدير قاعدة بيانات، أو ملف إعدادات، أو أي مكان آخر يظهر فيه JSON.
- اختر فاصلاً. الفاصلة هي الافتراضي والخيار الصحيح لمعظم جداول البيانات، لكن القائمة المنسدلة تقدّم أيضاً تاب وفاصلة منقوطة وخط عمودي للحالات الموضحة أدناه.
- قرّر ما إذا كنت تريد تسطيح الكائنات المتداخلة. اترك خيار "Flatten nested objects" مفعّلاً إذا كانت بياناتك تحتوي أي بنية هرمية تريد توسيعها إلى أعمدة منفصلة، مثل كائن عنوان أو كتلة بيانات وصفية.
- اضغط على "Convert to CSV". تُحلّل الأداة بيانات JSON الخاصة بك، وتُسطّحها إذا طُلب ذلك، وتجمع كل اسم عمود فريد عبر جميع السجلات، وتكتب النتيجة داخل مربع CSV Output في جزء من الثانية.
- انسخ النتيجة أو نزّلها. استخدم زر النسخ لأخذ نص CSV الخام، أو "Download .csv" لحفظه كملف يمكنك فتحه مباشرة في Excel أو Google Sheets أو LibreOffice Calc.
لا شيء من هذا يلمس خادماً. التحليل والتسطيح وتنسيق CSV كلها تعمل كـ JavaScript على جهازك أنت، فتعمل عملية التحويل بنفس الطريقة سواء كانت مصفوفتك تحتوي ثلاثة سجلات أو ثلاثين ألفاً، ولا يُنقل أي شيء تلصقه إلى أي مكان للمعالجة أبداً.
تسطيح JSON المتداخل: ترميز النقطة والمصفوفات
جدول البيانات ثنائي الأبعاد بطبيعته: صفوف وأعمدة، ولا شيء متداخل داخل خانة واحدة. أما JSON فلا يخضع لهذا القيد، إذ يمكن لكائن أن يحتوي كائناً آخر، يحتوي بدوره مصفوفة، تحتوي مزيداً من الكائنات، بعدد ما تحتاجه بياناتك من مستويات. تحويل بيانات كهذه إلى جدول يعني اتخاذ قرار بخصوص كل بنية متداخلة في بياناتك، وتتخذ هذه الأداة ذلك القرار وفق مجموعة صغيرة وقابلة للتوقع من القواعد.
تُسطَّح الكائنات المتداخلة باستخدام ترميز النقطة. من {"user": {"profile": {"name": "سارة", "verified": true}}}، تدخل الأداة إلى user ثم إلى profile، وتنتج عمودين باسم user.profile.name وuser.profile.verified. وتتكرر هذه العملية عبر عدد المستويات الموجودة فعلياً، فاستجابة API عميقة البنية، بأربعة أو خمسة مستويات، تنتهي إلى صف مسطّح من الأعمدة بدلاً من كتلة نص JSON غير قابلة للقراءة محشورة داخل خانة واحدة.
تنقسم المصفوفات إلى حالتين مختلفتين تماماً حسب محتواها. المصفوفة من قيم بسيطة، مثل "tags": ["admin", "billing"]، تُدمج داخل خانة واحدة كـ admin;billing بدلاً من توزيعها على أعمدة متعددة، لأنه لا يوجد اسم عمود طبيعي لـ "الوسم الثالث"، ولأن معظم قوائم الوسوم لا تحتاج بحثاً أو فرزاً عموداً بعمود. أما مصفوفة من كائنات، مثل قائمة عناصر طلب، فتُوسَّع باستخدام ترميز الفهرس: items[0].sku، items[0].price، items[1].sku، items[1].price، وهكذا، بحيث لا تُحذف أو تُدمج أي بيانات من أي عنصر داخل نص واحد غير مفهوم.
تُعالَج البيانات غير المتسقة بنفس الطريقة بغض النظر عن مدى اختلافها ظاهرياً. قبل كتابة أي صف واحد، تفحص الأداة كل كائن في مدخلك وتبني المجموعة الكاملة من أسماء الأعمدة عبر مجموعة البيانات بأكملها، وليس فقط المفاتيح الموجودة في السجل الأول. فإذا كان السجل الخامس يحتوي حقلاً تنقصه السجلات من الأول حتى الرابع، يحصل ذلك الحقل مع ذلك على عمود خاص به، وكل صف لا يملك قيمة له يحصل ببساطة على خانة فارغة بدلاً من إخلال ترتيب بقية الجدول.
اختيار الفاصل: فاصلة أم فاصلة منقوطة أم تاب أم خط عمودي
يعني اختصار "CSV" قيماً مفصولة بفاصلة، لكن الفاصلة في الحقيقة مجرد افتراض، واختيار الفاصل الخطأ من أكثر الأسباب شيوعاً لأن يبدو ملف مُحوَّل معطوباً لحظة فتحه. تدعم هذه الأداة أربعة خيارات فواصل، وكل واحد منها يحل مشكلة حقيقية ومحددة وليس موجوداً لمجرد كثرة الخيارات.
| الفاصل | الأنسب لـ | السبب |
|---|---|---|
| فاصلة (,) | Excel وGoogle Sheets بإعدادات إنجليزية، ومعظم واجهات API | الافتراضي العالمي لـ CSV؛ ما يتوقعه تقريباً كل أداة ما لم يُخبَر بخلاف ذلك |
| فاصلة منقوطة (;) | نسخ Excel الألمانية والفرنسية والإسبانية وغيرها من الإعدادات الإقليمية الأوروبية | تستخدم تلك الإعدادات الإقليمية الفاصلة كفاصل عشري، فيتوقع Excel هناك فواصل منقوطة بين الأعمدة بدلاً منها |
| تاب (TSV) | بيانات تحتوي الكثير من الفواصل داخل القيم أصلاً | حرف التاب نادراً ما يظهر داخل نص واقعي، لذا نادراً ما تُحتاج علامات الاقتباس |
| خط عمودي (|) | أدوات الاستيراد القديمة وخطوط أنابيب البيانات القديمة | بعض أنظمة ETL القديمة والمرتبطة بالحواسيب المركزية اعتمدت الخط العمودي معياراً قبل أن تصبح مسألة الفاصلة مقابل الفاصلة المنقوطة قضية إقليمية أصلاً |
الفارق بين الفاصلة والفاصلة المنقوطة يُوقع كثيرين في الخطأ أكثر من أي إعداد آخر في هذه الصفحة، لأنه غير مرئي حتى يُفتح الملف بالفعل. يُذكر أن الجدير بالملاحظة أن نسخ Windows وExcel العربية الشائعة لا تزال تفترض في الغالب الفاصلة كفاصل CSV تماماً كالإعدادات الإنجليزية، لكن إذا فتح زميل في ألمانيا أو فرنسا ملف CSV مفصولاً بفاصلة داخل نسخته المحلية من Excel، غالباً ما يعرض الجدول كل قيمة محشورة داخل العمود A بلا أي تقسيم على الإطلاق، لأن Excel هناك يترقب فواصل منقوطة، وتبدو له الفاصلة علامة ترقيم عادية داخل القيمة وليست حداً لعمود. تبديل فاصل هذه الأداة إلى فاصلة منقوطة قبل إرسال الملف لزميل أوروبي يتفادى هذه المشكلة تماماً، دون أي تغيير إعدادات مطلوب من جانبه.
الاقتباس والإفلات: الفواصل وعلامات الاقتباس وفواصل الأسطر داخل الحقل
بعد اختيار الفاصل، لا يزال على المحوّل التعامل مع القيم التي تحتوي ذلك الحرف بالذات، أو علامة اقتباس، أو فاصل سطر فعلي، دون إفساد بنية الصف. وصف منتج يقول "متوفر بألوان أحمر، أزرق، وأخضر" يحتوي فواصل ليست حدود أعمدة، وأي محوّل ساذج يدمج الحقول بالفاصلة فقط سيقسّم ذلك الوصف الواحد إلى ثلاثة أعمدة منفصلة ومكسورة.
تتبع هذه الأداة قاعدة الاقتباس القياسية لـ CSV: لا يُغلَّف الحقل بعلامتي اقتباس إلا عند الحاجة الفعلية، أي عندما يحتوي على حرف الفاصل، أو علامة اقتباس مزدوجة حرفية، أو سطر جديد. كل ما عدا ذلك يُترك كنص عادي بلا اقتباس، مما يبقي الناتج سهل القراءة ويتجنب تكديس قيم بسيطة كالأسماء والأرقام بعلامات لا تحتاجها.
- فاصل مُضمَّن.
Doe, Johnتصبح"Doe, John"عندما يكون الفاصل فاصلة، حتى لا تُخلط الفاصلة داخل الاسم بحد عمود. - علامات اقتباس مُضمَّنة. قيمة مثل
Say "hello"تصبح"Say ""hello""": يُغلَّف الحقل بأكمله بعلامتي اقتباس، وتُضاعف كل علامة اقتباس داخلية حتى يستطيع برنامج جدول البيانات تمييزها عن علامات الاقتباس المحيطة بحدود الحقل. - فواصل أسطر مُضمَّنة. عنوان متعدد الأسطر مُخزَّن كسلسلة JSON واحدة، بحرف سطر جديد فعلي في منتصفها، يُغلَّف بعلامات الاقتباس أيضاً. هذا يسمح للحقل بالامتداد شرعياً على أكثر من سطر داخل نص CSV الخام، بينما يقرأه كل برنامج جدول بيانات كخانة واحدة وليس صفين منفصلين.
هذا مهم بشكل خاص للبيانات المسحوبة من حقول نصية حرة، مثل تعليقات العملاء أو أوصاف المنتجات أو حقول الملاحظات، حيث تظهر الفواصل وعلامات الاقتباس وفواصل الأسطر باستمرار وبلا نمط ثابت. ضبط الاقتباس بشكل صحيح من المرة الأولى هو الفارق بين CSV يُفتح بسلاسة وآخر تُزاح نصف صفوفه بعمود واحد بسبب فاصلة شاردة.
UTF-8 وعلامة ترتيب البايت: لماذا تتحول الأحرف غير اللاتينية إلى رموز مشوّهة في Excel
ملف CSV هو مجرد بايتات؛ لا يوجد شيء داخل صيغة الملف نفسه يُعلن أي ترميز نصي تمثله تلك البايتات. هذا الغموض غير مرئي بالنسبة لنص إنجليزي بسيط يستخدم حروف A إلى Z فقط، لكنه يصبح مشكلة حقيقية بمجرد أن يحتوي اسم أو مدينة أو وصف منتج حرفاً بلغة أخرى، شيئاً مثل François أو Müller أو اسم مدينة عربياً مثل الرياض أو القاهرة. عند حفظه وفتحه بافتراضات ترميز متعارضة، تخرج تلك الأحرف كسلاسل رموز مشوّهة غير مفهومة بدلاً من النص الأصلي.
أحد الحلول الشائعة لهذا هو علامة ترتيب البايت لـ UTF-8، المعروفة اختصاراً بـ BOM، وهي ثلاثة بايتات محددة (EF BB BF) توضع في بداية الملف تماماً، وتُخبر أي برنامج يدعمها "هذا الملف بترميز UTF-8، اقرأه على هذا الأساس" قبل ظهور حرف واحد من البيانات الفعلية. Excel على Windows أحد البرامج التي تبحث عن BOM هذه: ملف CSV بترميز UTF-8 يبدأ بـ BOM يميل لأن يُفتح بشكل صحيح عند النقر المزدوج، بينما نفس الملف بدونها غالباً ما يُقرأ باستخدام صفحة الترميز المحلية للنظام بدلاً من ذلك، فيُفسد بصمت أي حرف غير إنجليزي في الملف، بما فيه النص العربي نفسه.
من المهم أن نكون صريحين حول ما تفعله هذه الأداة تحديداً: زر التنزيل في هذه الأداة يكتب ملف CSV بترميز UTF-8 عادياً دون إضافة BOM في مقدمته. بالنسبة لبيانات إنجليزية بسيطة بالكامل، لا يُحدث هذا أي فارق مرئي على الإطلاق. أما بالنسبة لبيانات تحتوي أسماء بأحرف غير لاتينية أو نصاً عربياً، فهذا يعني أن النقر المزدوج على الملف المُنزَّل داخل Excel قد يُظهر رموزاً مشوّهة رغم أن الملف الأساسي مُرمَّز بشكل صحيح تماماً. الإصلاح الموثوق، والذي يعمل بغض النظر عن مسألة BOM أصلاً، هو تجنب النقر المزدوج على الملف واستخدام معالج Data > From Text/CSV في Excel بدلاً من ذلك، الذي يتيح لك إخبار Excel صراحة "هذا الملف UTF-8" قبل أن يعرض خانة واحدة.
فتح النتيجة في Excel وGoogle Sheets وLibreOffice Calc
نفس ملف CSV يتصرف بشكل مختلف قليلاً حسب برنامج جدول البيانات الذي يفتحه، لأن كل واحد منها يفترض افتراضات مختلفة بخصوص الفاصل والترميز افتراضياً.
Microsoft Excel
النقر المزدوج على ملف csv. يُسلّمه لمسار الفتح السريع في Excel، الذي يُخمِّن الفاصل من إعدادات Windows الإقليمية لديك ويُخمِّن الترميز من صفحة ترميز نظامك بدلاً من التحقق من UTF-8. هذا سريع، لكنه بالضبط المسار الذي يُنتج كلاً من التباس الفاصلة مقابل الفاصلة المنقوطة وتشويه الأحرف غير اللاتينية الموضّح أعلاه. المسار الأكثر موثوقية هو معالج Data > From Text/CSV، ويُسمى أحياناً Get Data، الذي يعرض معاينة ويتيح لك ضبط مصدر الملف على UTF-8 وتأكيد الفاصل قبل استيراد أي شيء.
Google Sheets
استخدم File > Import > Upload واختر ملف CSV. Google Sheets أفضل ملحوظاً من سلوك النقر المزدوج الافتراضي لدى Excel في اكتشاف كل من ترميز UTF-8 والفاصل تلقائياً، فملف مفصول بفاصلة منقوطة أو فاصلة من هذه الأداة يُستورَد عادة بشكل صحيح دون أي إعداد يدوي، رغم أن نافذة الاستيراد تظل تسمح لك بتجاوز الفاصل إذا أخطأ التخمين.
LibreOffice Calc
يعرض LibreOffice نافذة Text Import في كل مرة تفتح فيها ملف csv.، وليس فقط عند طلب ذلك صراحة كما يفعل Excel. هذا احتكاك أكبر قليلاً لإلقاء نظرة سريعة على ملف، لكنه يعني حصولك على تحكم يدوي كامل كل مرة: قائمة منسدلة لمجموعة الأحرف يمكنك فيها اختيار "Unicode (UTF-8)" مباشرة، وخانات اختيار للفاصلة والفاصلة المنقوطة والتاب وفواصل أخرى، فلا غموض حول كيفية تحليل الملف.
لماذا تعمل هذه الأداة بالكامل داخل متصفحك
معظم أدوات "تحويل JSON إلى CSV" التي ستجدها اونلاين تُحمِّل ما تلصقه إلى خادم، وتعالجه هناك، ثم تُعيد إليك النتيجة. تلك الرحلة ذهاباً وإياباً غير مرئية أثناء الاستخدام العادي، لكنها تعني أن بياناتك، ولو للحظة قصيرة، جلست على بنية تحتية لا تتحكم بها. بالنسبة لعيّنة بيانات عامة صغيرة، هذا ليس مشكلة. أما بالنسبة لتصدير سجلات عملاء فعلية، أو نسخة داخلية من قاعدة بيانات، أو أي شيء تغطيه اتفاقية معالجة بيانات، فهذا قلق حقيقي، ومن النوع الذي ستلاحظه أي مراجعة أمنية فوراً.
لا تقوم هذه الأداة بتلك الرحلة أبداً. تحليل JSON، وتسطيح الكائنات المتداخلة، وبناء ناتج CSV، كلها كود JavaScript عادي يأتي مع الصفحة ويعمل على جهازك في اللحظة التي تنقر فيها على Convert. افتح تبويب الشبكة في متصفحك أثناء استخدامها ولن ترى طلباً واحداً يحمل بياناتك إلى أي مكان. لهذا أثر عملي آخر إلى جانب الخصوصية: لا توجد قائمة انتظار على خادم ولا حد معدل استخدام API ولا سقف حجم رفع تفرضه أي بنية خلفية، لأن حاسوبك أنت يقوم بكل العمل.
ماذا يعني هذا للفرق التي تتعامل مع تصديرات حساسة
إذا كنت تُحوّل تصدير قاعدة بيانات، أو قائمة سجلات مستخدمين، أو بنود عقد، أو أي شيء آخر لا تريده أن يغادر مؤسستك، فإن أداة تعمل محلياً بالكامل تُزيل هذا الخطر من المعادلة تماماً بدلاً من أن تطلب منك الثقة بسياسة خصوصية لم تقرأها. إنه نفس المنطق الذي يدفع فرق الهندسة لتشغيل أداة تنسيق أو تحويل بيانات محلياً بدلاً من لصق بيانات إنتاج داخل أي نموذج ويب عشوائي.
الاستخدامات الشائعة لمحوّل JSON إلى CSV هذا
تصحيح ومراجعة استجابات API
يسحب مطوّر استجابة JSON من نقطة نهاية REST ويحتاج تسليم نسخة قابلة للقراءة لمُختبر جودة أو مدير منتج يعيش داخل جداول البيانات وليس داخل أدوات مطوّري المتصفح. تحويل الاستجابة هنا يحوّل جداراً من الأقواس المعقوفة والمربعة إلى صفوف وأعمدة يستطيع أي أحد في الفريق مسحها وتصفيتها.
تصدير نتائج استعلام NoSQL
تُعيد قواعد بيانات المستندات مثل MongoDB وFirestore وما شابهها نتائج استعلاماتها كـ JSON افتراضياً. بدلاً من كتابة سكربت تصدير مخصص لمرة واحدة، لصق دفعة من نتائج استعلام داخل هذه الأداة يُنتج CSV يُفتح مباشرة في Excel أو Sheets للتحليل السريع أو التصفية أو جدول محوري بسيط.
تحضير خلاصات المنتجات والكتالوجات
غالباً ما تتطلب أسواق التسوق الإلكتروني ومنصات التسويق ملفات CSV للرفع الجماعي للمنتجات، بينما تعيش بيانات المنتج نفسها غالباً داخل خلاصة JSON أو واجهة برمجية. تحويل تصدير JSON لكتالوج منتجات، بما في ذلك حقول متداخلة كمستويات التسعير أو خصائص المتغيرات، يوفّر بناء جدول بيانات يدوياً من الصفر.
تحليل السجلات المُهيكَلة
التطبيقات التي تُصدر سجلات JSON مُهيكَلة تُنتج بيانات سهلة التحليل آلياً لكن مُملة للمسح البصري. لصق دفعة من إدخالات السجل داخل هذه الأداة وتسطيحها إلى أعمدة يجعل الفرز حسب الطابع الزمني، أو التصفية حسب رمز الحالة، أو رصد نمط عبر مئات الإدخالات، أسهل بكثير.
ترحيل البيانات بين الأنظمة
نقل البيانات من منصة إلى أخرى غالباً ما يعني أن النظام المصدر يُصدّر JSON بينما لا يقبل النظام الوجهة سوى استيراد CSV. تحويل التصدير هنا، ومراجعة عناوين الأعمدة التي أنتجها التسطيح، وتعديل أسماء الحقول عند الحاجة، عادة أسرع من كتابة سكربت مؤقت لترحيل لمرة واحدة.
نصائح لناتج CSV نظيف وأخطاء شائعة يجب تجنبها
- احذر انفجار الأعمدة مع المصفوفات الطويلة من الكائنات. إذا احتوى سجل واحد مصفوفة من خمسين عنصر طلب وآخر ثلاثة فقط، ينتج التسطيح حتى خمسين مجموعة من أعمدة
items[N].field، معظمها فارغ للسجلات الأقصر. عندما تتفاوت أطوال المصفوفات كثيراً عبر مجموعة بياناتك، فكّر في إلغاء تفعيل "Flatten nested objects" حتى تبقى كل مصفوفة كسلسلة JSON واحدة داخل خانة واحدة بدلاً من ذلك. - أرقام يجب أن تبقى نصاً. رمز بريدي أو رقم هاتف أو معرّف مُخزَّن كسلسلة JSON نصية، مثل
"00501"، يمر عبر CSV كنص ويحافظ على صفره البادئ. إذا أعاد Excel لاحقاً تنسيق ذلك العمود كرقم وأسقط الصفر البادئ من تلقاء نفسه، اضبط تنسيق العمود على نص قبل أو أثناء الاستيراد بدلاً من بعده. - القيم الفارغة والمفقودة تصبح خانات فارغة، وليست كلمة "null". هذا يُبقي CSV نظيفاً للتصفية والفرز، لكنه يعني أيضاً أنك لن تُميّز بصرياً بين "مُعيَّن صراحة إلى null" و"المفتاح مفقود تماماً" بمجرد وصول البيانات لشكل جدول بيانات؛ إذا كان هذا الفارق مهماً، تحقق من JSON المصدر قبل التحويل.
- أعد التحقق من الفاصل بعد لصق مجموعة بيانات جديدة. تبقى القائمة المنسدلة على آخر خيار اخترته، فإذا حوّلت ملفاً مفصولاً بفاصلة منقوطة لزميل ثم لصقت مجموعة بيانات جديدة، يستحق الأمر التأكد من أن الفاصل لا يزال مناسباً لمن أو ما سيفتح الملف التالي.
- المصفوفات الكبيرة جداً لا تزال مقبولة، فقط راقب تبويب متصفحك. لا يوجد حد صارم مبني داخل الأداة، لكن مصفوفة JSON بعشرات الآلاف من السجلات عميقة التداخل ستستهلك ذاكرة أكبر ملحوظاً من مصفوفة صغيرة؛ إذا بدأ التبويب يبطئ، فإن تحويل البيانات على دفعات أصغر يعمل بنفس الكفاءة.
معظم ناتج CSV الذي يبدو خاطئاً يعود إلى واحدة من هذه الخمس نقاط بدلاً من عيب في منطق التحويل نفسه: طول مصفوفة غير متسق، رقم كان يجب أن يبقى نصاً، عدم تطابق الفاصل عند الطرف المستقبِل، أو خلل ترميز عند فتح الملف. مراجعة مربع CSV Output قبل التنزيل، وخصوصاً صف العناوين، أسرع طريقة لرصد أي من هذه المشاكل مبكراً.
الأسئلة الشائعة
أدوات تحويل بيانات ذات صلة
🔒 خصوصية محلية 100%
يتم تحليل JSON وتوليد CSV بالكامل <strong>داخل متصفحك</strong>. لا تُرفع أي بيانات إلى أي خادم أبداً. يبقى JSON الخاص بك على جهازك في كل الأوقات.