طلبات المتجر المصدّرة JSON يختلف عدد المنتجات في كل طلب، فهل أفرد العناصر في أعمدة أم أتركها نصًا في خانة واحدة؟
يعتمد على ما ستفعله بالملف. التسطيح يكتب المنتجات بحسب ترتيبها، فالطلب الذي فيه أكبر عدد من المنتجات يحدد عدد أعمدة المنتجات لكل الصفوف، وتبقى خانات الطلبات القصيرة فارغة. إن كنت تريد صفًا واحدًا لكل طلب أو ستعيد بناء البيانات لاحقًا، فاختر «نص JSON في خلية واحدة».
ماذا يحدث للأعمدة عند التسطيح؟
خذ طلبين: الأول فيه منتج واحد، والثاني فيه ثلاثة منتجات. كل منتج كائن فيه حقل t. بصيغة JSON:
[{"id":1,"items":[{"t":"a"}]},{"id":2,"items":[{"t":"a"},{"t":"b"},{"t":"c"}]}]
مع الخيار الافتراضي «تسطيح بأسماء منقّطة» أخرجت الأداة أربعة أعمدة:
id,items.0.t,items.1.t,items.2.t
1,a,,
2,a,b,c
العمود items.0.t يعني «الحقل t في المنتج الأول»، وitems.2.t يعني «في المنتج الثالث». الطلب الأول ليس فيه منتج ثانٍ ولا ثالث، فبقيت خانتاه فارغتين. ولو كان كل منتج يحمل خمسة حقول بدل حقل واحد، والطلب الأطول فيه عشرة منتجات، لحصلت على خمسين عمودًا للمنتجات وحدها.
ومع «نص JSON في خلية واحدة»؟
الطلبان نفسهما أعطيا عمودين فقط:
id,items
1,"[{""t"":""a""}]"
2,"[{""t"":""a""},{""t"":""b""},{""t"":""c""}]"
كل قائمة منتجات بقيت كاملة في خانة واحدة كنص JSON. علامات الاقتباس المضاعفة هي طريقة CSV لحفظ علامات الاقتباس داخل الخلية، وتختفي حين يُقرأ الملف.
أيهما تختار؟
- اختر التسطيح إذا كان عدد المنتجات في الطلبات متقاربًا وصغيرًا، وتريد أن ترى كل منتج في خانته داخل Excel.
- اختر «نص JSON في خلية واحدة» إذا كانت الطلبات تتفاوت كثيرًا، أو كنت تريد تقريرًا بصف واحد لكل طلب، أو ستعطي الملف لمطور يحتاج البنية كاملة.
- إن كنت تريد صفًا لكل منتج (أي تكرار رقم الطلب مع كل منتج)، فهذا ليس ما يفعله أي من الخيارين. عليك أن تجهّز JSON بهذا الشكل من المصدر، مصفوفة فيها كائن لكل منتج ومعه رقم طلبه.
الخطوات
- افتح محوّل CSV و JSON واختر «JSON إلى CSV».
- الصق بيانات الطلبات. إن كانت طويلة فافحص بنيتها أولًا في منسّق ومدقّق JSON.
- من قائمة «القيم المتداخلة» اختر الطريقة المناسبة.
- اقرأ الملخص: عدد الصفوف والأعمدة، وعدد القيم المتداخلة التي عولجت.
- نزّل الملف.
ملاحظة عن الحقول الغائبة
في المثال بقيت خانات الطلب الأول فارغة لأن المنتجين الثاني والثالث غير موجودين أصلًا. وCSV لا يفرّق بين خانة فارغة لأن القيمة غائبة وخانة فارغة لأن القيمة null. إن كان هذا الفرق مهمًا لمن سيستخدم الملف، فالخيار الثاني أسلم لأنه يحفظ القائمة كما هي.
أسئلة شائعة
هل تُحذف المنتجات الزائدة في الطلبات الطويلة؟
لا. التسطيح يضيف أعمدة بقدر أطول طلب، فلا يضيع أي منتج.
هل ترتيب الأعمدة ثابت؟
الأعمدة تظهر بترتيب أول ظهور لكل حقل في البيانات.
هل أستطيع إعادة ملف «نص JSON» إلى JSON؟
نعم، تحويله باتجاه «CSV إلى JSON» يعيد الخانة نصًا، ويمكن للمطور قراءته بصيغة JSON من جديد.
