Aracılığıyla paylaş


Çalışma kitaplarındaki JSON verilerini dönüştürmek için JSONPath kullanma

Çalışma kitapları birçok kaynaktan veri sorgulayabilir. Azure Resource Manager veya özel uç noktalar gibi bazı uç noktalar JSON'da sonuç döndürebilir. Sorgulanan uç nokta tarafından döndürülen JSON verileri istemediğiniz bir biçimdeyse JSONPath dönüştürmesini kullanarak JSON'yi tablo yapısına dönüştürebilirsiniz. Daha sonra çalışma kitabı görselleştirmelerini çizmek için tabloyu kullanabilirsiniz.

JSONPath, JSON için XML için XPath'e benzer bir sorgu dilidir. XPath gibi JSONPath de verilerin JSON yapısından ayıklanıp filtrasyonunu sağlar.

JSONPath kullanma

Bu örnekte JSON nesnesi bir deponun envanterini temsil eder. Mağazanın başlıklarını, yazarlarını ve fiyatlarını listeleyen kullanılabilir kitaplarından bir tablo oluşturacağız.

  1. Düzenle'yi seçerek çalışma kitabını düzenleme moduna geçirin.

  2. Çalışma kitabına sorgu denetimi eklemek için Sorgu Ekle>bağlantısını kullanın.

  3. Veri kaynağını JSON olarak seçin.

  4. Aşağıdaki JSON parçacığını girmek için JSON düzenleyicisini kullanın:

    { "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. Sonuç Ayarlar sekmesini seçin ve sonuç biçimini JSON Yolu'na değiştirin.

  6. Aşağıdaki JSON yol ayarlarını uygulayın:

    • JSON Yol Tablosu: $.store.books. Bu alan, tablonun kök yolunu temsil eder. Bu durumda mağazanın kitap envanterini önemsiyoruz. Tablo yolu, JSON'ı kitap bilgilerine filtreler.

      Sütun Kimlikleri Sütun JSON yolları
      Başlık $.title
      Yazar $.author
      Fiyat $.price

    Sütun kimlikleri sütun üst bilgileridir. Sütun JSON yolları alanları, tablonun kökünden sütun değerine giden yolu temsil eder.

  7. Sorguyu Çalıştır'ı seçin.

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

Değerleri dönüştürmek için normal ifadeleri kullanma

Standart biçimde olmayan bazı verileriniz olabilir. Bu verileri etkili bir şekilde kullanmak için bu verileri standart bir biçime dönüştürmek isteyebilirsiniz.

Bu örnekte, yayımlanan tarih YYYMMMDD biçimindedir. Kod bu değeri metin olarak değil sayısal bir değer olarak yorumlayarak tarih yerine sağa yaslı sayılar verir.

Sonucu gerçek tarihlere dönüştürmek için sonuç ayarlarında Tür, RegEx Eşleşmesi ve ŞunuNla Değiştir alanlarını kullanabilirsiniz.

Sonuç ayarı alanı Açıklama
Tür API tarafından döndürülen değerin türünü açıkça değiştirmenize olanak tanır. Bu alan genellikle ayarsız bırakılır, ancak değeri farklı bir türe zorlamak için bu alanı kullanabilirsiniz.
Regex Eşleşmesi Değerin tamamı yerine API tarafından döndürülen değerin bir kısmını (veya parçalarını) almak için normal bir ifade girmenizi sağlar. Bu alan genellikle Yeni Değer alanıyla birleştirilir.
Şununla Değiştir Normal ifadeyle birlikte yeni değeri oluşturmak için bu alanı kullanın. Bu değer boşsa, ifadenin eşleşme sonucu olan varsayılan $&değeridir. Diğer çıkışları oluşturmak için kullanabileceğiniz diğer değerleri görmek için string.replace belgelerine bakın.

YYYMMDD biçimini YYYY-AA-GG biçimine dönüştürmek için:

  1. Kılavuzda Yayımlanan satırını seçin.

  2. Tür alanında Tarih/Saat'i seçerek sütunun grafiklerde kullanılabilir olmasını sağlayın.

  3. Regex Eşleşmesi alanında şu normal ifadeyi kullanın: ([0-9]{4})([0-9]{2})([0-9]{2}). Bu normal ifade:

    • dört basamaklı bir sayıyla, sonra iki basamaklı bir sayıyla, sonra başka bir iki basamaklı sayıyla eşleşir.
    • Parantezler, sonraki adımda kullanılacak yakalama gruplarını oluşturur.
  4. Şununla Değiştir bölümünde şu normal ifadeyi kullanın: $1-$2-$3. Bu ifade, yakalanan her grup için aralarında kısa çizgi bulunan ve "12345678" öğesini "1234-56-78" haline getirerek yeni bir dize oluşturur.

  5. Sorguyu yeniden çalıştırın.

    Screenshot that shows JSONpath converted to date-time format.

Sonraki adımlar