تحويل JSON إلى CSV

يعمل على جهازك · الملف لا يغادر جهازك.

أضف ملف .json أو الصق ردّ واجهة برمجية مباشرة، واحصل على CSV يفتحه Excel وGoogle Sheets وأي شاشة استيراد. القائمة في أعلى الملف تصبح صفًا لكل عنصر؛ وإلا تُستخدم أطول قائمة سجلات في المستند، فـ{"results": [...], "count": 2} يعطي صفًا لكل نتيجة؛ والكائن الذي لا قائمة فيه يصبح صفًا واحدًا.

القواعد ثابتة لتكون النتيجة متوقعة: الكائن المتداخل يصبح أعمدة مفصولة بنقطة (address.city)، وقائمة القيم البسيطة تُجمع بفاصلة منقوطة في خلية واحدة، وقائمة الكائنات داخل السجل تأخذ أعمدة مرقّمة (items.0.name). صف العناوين هو اتحاد كل المفاتيح بترتيب ظهورها الأول، فالسجل الناقص يترك خلية فارغة فقط.

يُكتب CSV وفق معيار RFC 4180 بترميز UTF-8 مع علامة BOM اختيارية كي يعرض Excel النص بكل اللغات والرموز صحيحًا. والخلية التي تبدأ بـ = أو + أو - أو @ تُسبق بفاصلة علوية، فيعرضها برنامج الجداول نصًا ولا يشغّلها صيغةً. ترى أول 200 سطر قبل التنزيل.

كيفية تحويل JSON إلى CSV

  1. أضف ملف JSON أو الصق النص.
  2. اختر الفاصل بين الأعمدة وعلامة BOM إن أردت.
  3. اضغط «حوّل إلى CSV» وراجع المعاينة.
  4. نزّل ملف .csv.

الصيغ المدعومة والحدود

المدخل
JSON — ملف أو نص ملصوق، UTF-8
المخرج
CSV وفق RFC 4180، UTF-8، مع BOM اختيارية
التداخل
الكائنات ← أعمدة بنقاط؛ القوائم ← مفصولة بـ ;
الفاصل
فاصلة أو فاصلة منقوطة أو Tab أو خط عمودي
مكان المعالجة
داخل متصفحك — الملف لا يغادر جهازك

ليست مناسبة لِـ: كائن واحد شديد التداخل بلا قائمة داخله — يُحوَّل لكن صفًا واحدًا عريضًا لا جدولًا.

أي قائمة تصبح هي الصفوف

القائمة في أعلى المستند هي الصفوف. وإلا بحثت الأداة في المستند، حتى ثمانية مستويات في العمق، عن أطول قائمة من الكائنات. فكلٌّ من {"response": {"data": {"items": [...]}}} و{"results": [...], "count": 2, "next": null} يعطي صفًا لكل عنصر، والسطر تحت النتيجة يذكر اسم القائمة التي استُخدمت، مثل results. أما القيم الواقعة بجانب تلك القائمة، مثل count وnext، فليست جزءًا من أي سجل، فتُترك.

وإذا تساوت قائمتان في الطول، فازت الأقرب إلى أعلى المستند. ولقائمة أقصر، انسخها من [ إلى ] والصق ذلك الجزء وحده. والمستند الذي لا يحوي قائمة كائنات يصبح صفًا واحدًا، والأغلفة ذات المفتاح الواحد تُتخطى، فـ{"order": {"id": 7, "total": 12}} يعطي العمودين id وtotal.

كيف تُكتب القيم في الخلايا

يُنسخ النص كما هو تمامًا، ومنه التواريخ، فتبقى بالصورة التي يحملها بها JSON، مثل 2024-01-05T10:00:00Z. وتُكتب true وfalse كلمتين. أما null والقائمة الفارغة والكائن الفارغ فكلها تصبح خلية فارغة، فتبدو في CSV كأن الحقل لم يكن موجودًا.

ويُكتب الرقم كما هو في JSON تمامًا: 1.0 تبقى 1.0، و1e21 تبقى 1e21، والمعرّف مثل 12345678901234567890 يحتفظ بكل خاناته حتى دون علامتي اقتباس. أما قارئ JSON العادي فكان سيحوّل ذلك المعرّف إلى 12345678901234567000.

القوائم داخل القوائم، والمفاتيح التي تحوي نقاطًا أصلًا

قائمة القوائم تُفتح مستوى واحدًا: "m": [[1, 2], [3]] يعطي عمود m.0 فيه 1;2 وعمود m.1 فيه 3. والقائمة التي تخلط كائنات بقيم بسيطة يُرقَّم كل عنصر فيها، فـ"x": [{"z": 1}, 2] يعطي x.0.z وx.1.

وأسماء الأعمدة تُصنع بوصل المفاتيح بالنقاط، فقد يلتقي مفتاح يحوي نقطة أصلًا بمفتاح متداخل: {"a.b": 1, "a": {"b": 2}} كان سيصنع a.b مرتين. فيأخذ الثاني لاحقة، فتصبح الأعمدة a.b وa.b_2 وتُحفظ القيمتان كلتاهما.

اختيار الفاصل، والخلايا التي تبدأ بـ =

الفاصلة هي الاختيار المعتاد. والفاصلة المنقوطة تناسب برنامج جداول مضبوطًا على لغة تكتب الكسور العشرية بالفاصلة، حيث يُفتح الملف المفصول بالفواصل في عمود واحد في الغالب. أما علامة الجدولة (Tab) والخط العمودي (|) فللأنظمة التي تطلبهما. وأيًّا كان الفاصل، يُسمّى الملف ‎.csv‎.

والخلية التي تبدأ بـ = أو + أو - أو @ صيغةٌ في نظر برنامج الجداول، فيشغّلها عند فتح الملف. لذلك يُضاف قبلها فاصلة علوية (')، وهي العلامة التي تستخدمها برامج الجداول نفسها لتقول «هذا نص»، فتُكتب =1+1 هكذا: '=1+1. أما الأرقام العادية مثل -5 أو +3.5 فتبقى كما هي.

الأسئلة الشائعة

هل يغادر ملفي جهازي؟
لا. تجري المعالجة بالكامل داخل متصفحك وبقدرة جهازك نفسه. الملف لا يغادر حاسوبك أو هاتفك، وبعد أن تستخدم الأداة مرة واحدة، تواصل العمل حتى إن انقطع الإنترنت.
ماذا يحدث للكائنات والقوائم المتداخلة؟
الكائن المتداخل يُفرد إلى أعمدة بنقاط: {"address":{"city":"Cairo"}} يصبح عمودًا اسمه address.city. قائمة القيم البسيطة تُكتب a;b في خلية واحدة. قائمة الكائنات داخل السجل تأخذ أعمدة مرقّمة مثل items.0.name.
ملف JSON عندي كائن لا قائمة — ماذا أحصل؟
تصبح أطول قائمة سجلات فيه هي الصفوف — {"results": [...], "count": 2, "next": null} يعطي صفًا لكل نتيجة — ويذكر سطر النتيجة اسم القائمة التي استُخدمت. والقيم الواقعة بجانب تلك القائمة ليست جزءًا من أي سجل فتُترك. أما الكائن الذي لا قائمة فيه فيُكتب صفًا واحدًا بعمود لكل مفتاح.
لماذا تظهر العربية رموزًا غريبة في Excel؟
لأن Excel يخمّن الترميز ما لم يبدأ الملف بعلامة BOM. مفتاح «إضافة علامة BOM من أجل Excel» مفعّل افتراضيًا؛ عطّله للأنظمة التي تطلب UTF-8 مجرّدًا.

أدوات ذات صلة

المزيد في الجداول والبيانات

هذه الصفحة بلغات أخرى: English · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা