استخدام JSONPath لتحويل بيانات JSON في المصنفات

يمكن للمصنفات الاستعلام عن البيانات من العديد من المصادر. يمكن لبعض نقاط النهاية، مثل Azure Resource Manager أو نقاط النهاية المخصصة إرجاع النتائج في JSON. إذا كانت بيانات JSON التي تم إرجاعها بواسطة نقطة النهاية التي تم الاستعلام عليها بتنسيق لا تريده، يمكنك استخدام تحويل JSONPath لتحويل JSON إلى بنية جدول. يمكنك بعد ذلك استخدام الجدول لرسم مرئيات المصنف.

JSONPath هي لغة استعلام ل JSON مشابهة ل XPath ل XML. مثل XPath، يسمح JSONPath باستخراج البيانات وفلترها من بنية JSON.

استخدام مسار JSON

في هذا المثال، يمثل كائن JSON مخزون المتجر. سننشئ جدولا للكتب المتوفرة في المتجر يسرد عناوينهم ومؤلفيهم وأسعارهم.

  1. قم بتبديل المصنف إلى وضع التحرير عن طريق تحديد تحرير.

  2. استخدم "إضافة">لإضافة استعلام لإضافة عنصر تحكم استعلام إلى المصنف.

  3. حدد مصدر البيانات كـ JSON.

  4. استخدم محرر JSON لإدخال مقتطف JSON التالي:

    { "store": {
        "books": [ 
          { "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
          },
          { "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
          },
          { "category": "fiction",
            "author": "Herman Melville",
            "title": "Moby Dick",
            "isbn": "0-553-21311-3",
            "price": 8.99
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }
    
  5. حدد علامة التبويب "النتيجة الإعدادات" وبدل تنسيق النتيجة إلى مسار JSON.

  6. تطبيق إعدادات مسار JSON التالية:

    • جدول مسار JSON: $.store.books. يمثل هذا الحقل مسار جذر الجدول. في هذه الحالة، نحن نهتم بمخزون الكتب في المتجر. يقوم مسار الجدول بتصفية JSON إلى معلومات الكتاب.

      معرفات الأعمدة IDs مسارات JSON للعمود
      المسمى الوظيفي $.title
      المؤلف‬ $.author
      السعر $.price

    معرفات الأعمدة هي رؤوس الأعمدة. تمثل حقول مسارات JSON العمود المسار من جذر الجدول إلى قيمة العمود.

  7. ثم حدد Run Query.

    Screenshot that shows editing a query item with JSON data source and JSON path result format.

استخدام التعبيرات العادية لتحويل القيم

قد يكون لديك بعض البيانات التي ليست بتنسيق قياسي. لاستخدام هذه البيانات بشكل فعال، قد ترغب في تحويل تلك البيانات إلى تنسيق قياسي.

في هذا المثال، التاريخ المنشور بتنسيق YYYMMMDD. تفسر التعليمات البرمجية هذه القيمة كقيمة رقمية، وليس نصا، مما يؤدي إلى أرقام مبررة لليمين، بدلا من تاريخ.

يمكنك استخدام الحقول Type و RegEx Match و Replace With في إعدادات النتائج لتحويل النتيجة إلى تواريخ صحيحة.

حقل إعداد النتيجة ‏‏الوصف
النوع يسمح لك بتغيير نوع القيمة التي تم إرجاعها بواسطة واجهة برمجة التطبيقات بشكل صريح. عادة ما تركنا هذا الحقل غير معين، ولكن يمكنك استخدام هذا الحقل لفرض القيمة على نوع مختلف.
Regex Match يسمح لك بإدخال تعبير عادي للمشاركة (أو أجزاء) من القيمة التي تم إرجاعها بواسطة واجهة برمجة التطبيقات بدلا من القيمة بأكملها. عادة ما يتم دمج هذا الحقل مع الحقل استبدال ب .
استبدال ب استخدم هذا الحقل لإنشاء القيمة الجديدة مع التعبير العادي. إذا كانت هذه القيمة فارغة، فإن القيمة الافتراضية هي $&، وهي نتيجة مطابقة التعبير. راجع string.replace documentation لمشاهدة القيم الأخرى التي يمكنك استخدامها لإنشاء إخراج آخر.

لتحويل تنسيق YYYMMDD إلى تنسيق YYYY-MM-DD:

  1. حدد الصف Published في الشبكة.

  2. في الحقل النوع ، حدد التاريخ/الوقت بحيث يكون العمود قابلا للاستخدام في المخططات.

  3. في الحقل Regex Match ، استخدم هذا التعبير العادي: ([0-9]{4})([0-9]{2})([0-9]{2}). هذا التعبير العادي:

    • يطابق رقما مكونا من أربعة أرقام، ثم رقما مكونا من رقمين، ثم رقمين آخرين.
    • نموذج مجموعات التقاط الأقواس لاستخدامها في الخطوة التالية.
  4. في استبدال ب، استخدم هذا التعبير العادي: $1-$2-$3. ينشئ هذا التعبير سلسلة جديدة مع كل مجموعة تم التقاطها، مع واصلة بينها، وتحويل "12345678" إلى "1234-56-78").

  5. قم بتشغيل الاستعلام مرة أخرى.

    Screenshot that shows JSONpath converted to date-time format.

الخطوات التالية