الانتقال إلى المحتوى الرئيسي

السؤال

كيف أستورد مصفوفات JSON، وكيف يمكنني الاستعلام عن الكائنات الموجودة بداخلها؟

الإجابة

احفظ مصفوفة JSON هذه المكوّنة من سطر واحد في sample.json
تحقق من البيانات:
أنشئ جدولًا لتلقّي صفوف JSON:
أدرِج البيانات:
تحقّق من كيفية تعامل استدلال البيانات مع نوع كائن JSON:
Events هي مصفوفة من Tuple، يحتوي كلٌّ منها على الحقلين eventType من النوع String وtime من النوع String. هذا النوع الأخير ليس مثاليًا (إذ نفضّل DateTime بدلًا منه). لنلقِ نظرة على البيانات:
لننفّذ بعض الاستعلامات: _id وchannel للأحداث التي تكون فيها قيمة eventType هي close
نريد إجراء استعلام على time، على سبيل المثال لجميع الأحداث ضمن نطاق زمني محدد، لكننا نلاحظ أنه استورد على أنه String:
إذًا، لكي نتعامل مع هذه القيم كتواريخ، نحتاج أولًا إلى تحويلها إلى DateTime. لتحويل مصفوفة، نستخدم الدالة map:
يمكننا ملاحظة الاختلافات باستخدام toTypeName على كلتا المصفوفتين:
الآن لنعثر على id الخاص بالصفوف التي يقع فيها time ضمن فترة زمنية محددة. نستخدم arrayCount للتحقق مما إذا كان عدد العناصر في المصفوفة التي تُرجعها الدالة map والمطابقة للشرط x BETWEEN toDateTime('2021-06-18 11:46:00', 'Europe/Rome') AND toDateTime('2021-06-18 11:50:00', 'Europe/Rome') أكبر من 0
⚠️ يُرجى تذكّر أنه وقت كتابة هذه المقالة، كان الدعم الحالي لـ JSON تجريبيًا وغير مناسب لبيئات الإنتاج. يوضح هذا المثال كيفية استيراد JSON بسرعة والبدء في الاستعلام عنه، كما يبيّن المفاضلة بين سهولة الاستخدام، إذ نستورد كائنات JSON بالنوع JSON من دون الحاجة إلى تحديد نوع المخطط مسبقًا. وهذا مناسب لاختبار سريع، ولكن عند استخدام البيانات على المدى الطويل، نفضّل في هذا المثال تخزينها باستخدام الأنواع الأنسب. لذلك، بالنسبة إلى الحقل time، استخدم DateTime بدلًا من String لتجنّب أي تحويل بعد الإدخال، كما هو موضح أعلاه. يُرجى الرجوع إلى الوثائق لمزيد من المعلومات حول كيفية التعامل مع JSON.
آخر تعديل في ١ يوليو ٢٠٢٦