Tester JSONPath

Testuj wyrażenia JSONPath na danych JSON i obserwuj pasujące wartości oraz ścieżki na bieżąco podczas pisania.

Dane wejściowe JSON
Pasujące wartości
Wprowadź dane JSON oraz wyrażenie JSONPath, aby przetestować.

Państwa dane JSON oraz zapytania JSONPath są testowane bezpośrednio w przeglądarce. Nic nie jest przesyłane do BroBroGo.

FAQ

Jakiej składni JSONPath mogę używać?

Można używać popularnych wzorców JSONPath, takich jak $.store.book[*].title, wyszukiwania głębokiego z użyciem $..price, filtrów typu [?@.price < 10] oraz wycinków tablic (slices).

Dlaczego przy każdym wyniku wyświetlana jest ścieżka?

Ścieżka wskazuje dokładne miejsce pochodzenia wartości w źródłowym obiekcie JSON, dzięki czemu można skopiować dopasowanie bez utraty informacji o jego lokalizacji.

Dlaczego zapytanie może ulec przekroczeniu czasu oczekiwania?

Bardzo ogólne zapytania rekurencyjne lub ogromne zestawy danych mogą wymagać zbyt dużo czasu na przetworzenie. Tester przerywa ich działanie po krótkim czasie, aby umożliwić doprecyzowanie wyrażenia lub użycie mniejszej próbki.

Składnia JSONPath i selekcja danych w strukturach JSON

Standard JSONPath służy do precyzyjnego adresowania i wydobywania informacji z dokumentów JSON, pełniąc funkcję analogiczną do języka XPath dla plików XML. Wyrażenia te pozwalają na nawigację po zagnieżdżonych obiektach i tablicach przy użyciu ustrukturyzowanych reguł. Podstawą każdego zapytania jest symbol $, który reprezentuje korzeń (root) dokumentu JSON. Od tego punktu buduje się ścieżki dostępu, stosując notację kropkową (np. $.store.bicycle) lub nawiasy kwadratowe.

Zrozumienie sposobu, w jaki wyrażenia JSONPath selekcjonują dane, wymaga znajomości podstawowych operatorów:

  • Wyszukiwanie głębokie (rekurencyjne schodzenie): Operator .. pozwala na przeszukanie całej struktury dokumentu w celu znalezienia klucza na dowolnym poziomie zagnieżdżenia. Przykładowo, zapytanie $..price odnajdzie każdą wartość przypisaną do klucza price, niezależnie od tego, jak głęboko w strukturze obiektów się znajduje.
  • Wycinki tablic (array slices): Umożliwiają indeksowanie i wybieranie określonych przedziałów elementów z tablic.
  • Filtry: Wyrażenia warunkowe zapisywane w formacie [?(@.właściwość operator wartość)] pozwalają na selekcję elementów spełniających określone kryteria. Przykładem jest filtr [?@.price < 10], który ogranicza wyniki do obiektów, których cena jest mniejsza niż 10.

Walidacja danych wejściowych i obsługa błędów

Prawidłowe działanie zapytań zależy od poprawności składniowej zarówno samego dokumentu źródłowego, jak i wprowadzonego wyrażenia. Narzędzie na bieżąco weryfikuje oba te elementy, co pozwala na natychmiastowe wykrycie błędów strukturalnych.

W przypadku napotkania problemów, interfejs wyświetla precyzyjne komunikaty diagnostyczne:

  • Jeśli struktura wprowadzonych danych wejściowych nie jest zgodna ze specyfikacją formatu JSON, pojawia się komunikat: Ten kod JSON jest nieprawidłowy.
  • W sytuacji, gdy samo zapytanie zawiera błędy składniowe, użytkownik zobaczy informację: To wyrażenie JSONPath jest nieprawidłowe.
  • Jeżeli struktura zapytania uniemożliwia jego wykonanie na strukturze danych, system zgłasza błąd: Nie można przetworzyć tego wyrażenia JSONPath.

Praca z dużymi zbiorami danych i optymalizacja zapytań

Podczas przetwarzania dużych dokumentów JSON lub stosowania złożonych zapytań rekurencyjnych, wydajność procesu ewaluacji może ulec obniżeniu. Aby zapewnić stabilność działania w przeglądarce, wprowadzono określone limity techniczne oraz mechanizmy zabezpieczające:

  1. Limit rozmiaru danych wejściowych: Maksymalna wielkość tekstu JSON, jaki można wkleić do pola Dane wejściowe JSON, wynosi 500 000 znaków. Przekroczenie tej wartości skutkuje zablokowaniem testu i wyświetleniem komunikatu: Ten plik JSON jest zbyt duży do przetestowania tutaj. Spróbuj użyć mniejszej próbki.
  2. Limit długości wyrażenia: Pole Wyrażenie JSONPath akceptuje zapytania o maksymalnej długości 4 000 znaków. W przypadku dłuższego ciągu znaków wyświetlany jest komunikat: To wyrażenie JSONPath jest zbyt długie, aby je tutaj przetestować.
  3. Ograniczenie czasu wykonania (Timeout): Zbyt ogólne zapytania (np. nadużywanie operatora rekurencyjnego .. na głębokich strukturach) mogą przeciążyć silnik renderujący. Narzędzie automatycznie przerywa analizę, jeśli proces trwa zbyt długo, prezentując ostrzeżenie: Wykonanie tego zapytania JSONPath trwało zbyt długo. Proszę uprościć wyrażenie lub użyć mniejszej próbki danych.
  4. Limit liczby wyników: Narzędzie prezentuje maksymalnie 200 pasujących pozycji. Jeśli zapytanie zwraca więcej wyników, interfejs wyświetla informację o wolumenie w formacie Dopasowania: 200+ oraz adnotację: Wyświetlanie pierwszych {max} dopasowań.

Zastosowanie JSONPath w rozwoju i testowaniu API

W architekturze usług sieciowych (REST API) format JSON jest standardem wymiany danych. Programiści, testerzy oprogramowania oraz inżynierowie danych wykorzystują JSONPath do automatyzacji testów integracyjnych, weryfikacji odpowiedzi serwerów oraz transformacji struktur danych.

Dzięki precyzyjnemu adresowaniu, testerzy mogą szybko zweryfikować, czy konkretny punkt końcowy API zwraca oczekiwane wartości w zagnieżdżonych strukturach, bez konieczności ręcznego przeszukiwania całego dokumentu. Narzędzie ułatwia ten proces, prezentując nie tylko wyodrębnioną wartość, ale również jej pełną ścieżkę pochodzenia w strukturze źródłowej pod nagłówkiem Szczegóły. Pozwala to na bezbłędne skopiowanie dokładnej lokalizacji danej wartości i użycie jej bezpośrednio w kodzie aplikacji lub skryptach testowych.

Prywatność i bezpieczeństwo danych

Przetwarzanie informacji w narzędziu odbywa się z zachowaniem pełnej lokalności. Wszystkie operacje analizy składniowej JSON oraz ewaluacji zapytań JSONPath są wykonywane bezpośrednio w przeglądarce internetowej użytkownika. Żadne dane wprowadzane do formularzy nie są przesyłane do serwerów zewnętrznych ani do BroBroGo.


Często zadawane pytania (FAQ)

Jakiej składni JSONPath mogę używać?

Można używać popularnych wzorców JSONPath, takich jak $.store.book[*].title, wyszukiwania głębokiego z użyciem $..price, filtrów typu [?@.price < 10] oraz wycinków tablic (slices).

Dlaczego przy każdym wyniku wyświetlana jest ścieżka?

Ścieżka wskazuje dokładne miejsce pochodzenia wartości w źródłowym obiekcie JSON, dzięki czemu można skopiować dopasowanie bez utraty informacji o jego lokalizacji.

Dlaczego zapytanie może ulec przekroczeniu czasu oczekiwania?

Bardzo ogólne zapytania rekurencyjne lub ogromne zestawy danych mogą wymagać zbyt dużo czasu na przetworzenie. Tester przerywa ich działanie po krótkim czasie, aby umożliwić doprecyzowanie wyrażenia lub użycie mniejszej próbki.

Co oznacza komunikat o zbyt dużym pliku JSON?

Maksymalny dopuszczalny rozmiar danych wejściowych wynosi 500 000 znaków. Jeśli Twój dokument przekracza ten limit, należy ograniczyć jego rozmiar i wkleić mniejszy fragment testowy.