Přeskočit na obsah

JSONPath extraktor

Extrahujte odpovídající hodnoty z dokumentu JSON pomocí výrazu JSONPath nebo JSON Pointer.

Vstup
Výstup

JSONPath extraktor

Vložte dokument JSON, napište dotaz a tento nástroj vrátí pouze hodnoty, které se shodují — bez potřeby psát skript nebo otevírat REPL, abyste vytáhli jedno pole z velké datové struktury. Podporuje dva styly dotazů: výrazy JSONPath jako $.users[*].email a Reference RFC 6901 JSON Pointer jako /users/0/email. Přepínejte mezi nimi pomocí možnosti syntaxe podle toho, který z nich již máte k dispozici z dokumentace API, řádku protokolu nebo hlášky o chybě.

Podpora JSONPath pokrývá vzory, které lidé skutečně používají: tečkovanou notaci a přístup v závorkách ($.user.name nebo $['user name'] pro klíče s mezerami), zástupný symbol [*] k rozšíření na všechny prvky pole nebo všechny hodnoty objektu, číselné indexy včetně záporných indexů počítaných od konce ($.items[-1]) a .. rekurzivní sestup k nalezení klíče v libovolné hloubce bez ohledu na to, jak hluboko je vnořen ($..email). Filtrované výrazy a rozsahy řezů nejsou podporovány — pokud váš dotaz potřebuje podmíněnou logiku, nejprve extrahujte nadřazené pole a potom jej filtrujte dále.

Dva možnosti tvoří výstup. Možnost "Seznam řádků" vypíše každou nalezenou hodnotu na svůj řádek — řetězce se vytisknou bez změny, objekty a pole se vytisknou jako kompaktní JSON — což je vhodné pro přímé spárování s dalšími nástroji na bázi řádků, jako je sort nebo dedupe. Možnost "Pole JSON" zabalí každou shodu do jednoho pole JSON, což je užitečné, když chcete čistou, analyzovatelnou podmnožinu původního dokumentu. Zapněte možnost "Zobrazit cestu pro každý výsledek", aby se před každý výsledek umístila vyřešená cesta, což pomáhá, když by více různých polí mohlo plausibilně vysvětlit danou hodnotu.

Všechno se děje lokálně ve vašem prohlížeči: dokument, který vložíte, a výraz, který napíšete, se nikdy nikam nenahrávají. Díky tomu je bezpečné zaměřit se na skutečné odpovědi API, interní exporty konfigurace nebo výňatky z produkčního protokolu. Součty pod výstupem udávají přesně, kolik shod bylo nalezeno, takže neočekávaný prázdný výsledek se snadno rozlišuje od dotazu, který tiše nevrátil nic.

Časté dotazy

Jaký je rozdíl mezi JSONPath a JSON Pointer?
Výrazy JSONPath jako $.users[*].email mohou najednou odpovídat mnoha hodnotám pomocí zástupných symbolů a rekurzivního sestupu. Reference JSON Pointer jako /users/0/email se vždy vztahují na nejvýše jednu hodnotu — jedná se o jednodušší, doslovnější schéma adresování, běžné v JSON Schema a dat HTTP PATCH.
Které funkce JSONPath jsou podporovány?
Tečková notace a přístup v závorkách, zástupný symbol [*], číselné indexy pole (včetně záporných) a .. rekurzivní sestup pro klíč v libovolné hloubce. Filtrované výrazy jako [?(@.price<10)] a rozsahy řezů jako [0:2] nejsou podporovány.
Co se stane, když má můj výraz shodu s ničím?
Dostanete prázdný výsledek a součet 0 shod — toto se nepovažuje za chybu. Chyba se zobrazí pouze pro neplatný vstup JSON nebo špatně vytvořený výraz.
Mohu vidět, odkud jednotlivé hodnoty pochází?
Zapněte možnost "Zobrazit cestu pro každý výsledek" a každý výsledek bude mít na začátku přesnou cestu, v níž byl nalezen, v stejné syntaxi jako dotaz — cesty JSONPath jako $.users[0].email nebo původní ukazatel pro dotazy JSON Pointer.
Je můj dokument JSON někde nahrán?
Ne. Analýza a zpracování dotazů probíhají zcela ve vašem prohlížeči — dokument a výraz nikdy neopustí vaše zařízení.