Тестер на JSONPath
Поставете JSON и тествайте JSONPath изрази интерактивно. Вижте съвпадащи резултати в реално време, с примерни пътища за бързо начало.
Вход
Изход
Прочети ме
Какво е JSONPath?
JSONPath е език за заявки за JSON, подобен на начина, по който XPath работи за XML. Позволява ви да навигирате и извличате данни от JSON структура, използвайки изрази на пътя. JSONPath израз започва с $, което представлява корена на документа, и използва точкова нотация (.key) или нотация със скоби (['key']) за преминаване през обекти, и [index] за достъп до елементи на масив.
JSONPath е първоначално описан от Stefan Gössner през 2007 г. и оттогава е станал широко използван стандарт в API, тестови рамки и конвейери за обработка на данни. Поддържан е в много езици и инструменти, включително JavaScript, Python, Java и бази данни като PostgreSQL и MySQL.
Описание на инструмента
Този инструмент ви позволява да поставите всеки валиден JSON документ и да напишете JSONPath израз за неговото заявяне. Резултатите се показват моментално, докато пишете, показвайки всички съответстващи стойности като форматиран JSON масив. Броят на съответствията се показва отделно, така че можете бързо да проверите колко възли са избрани.
Примери
Входен JSON:
{
"store": {
"book": [
{ "title": "Moby Dick", "price": 8.99, "category": "fiction" },
{ "title": "War and Peace", "price": 12.5, "category": "fiction" },
{
"title": "A Brief History of Time",
"price": 7.99,
"category": "science"
}
]
}
}| Израз | Резултат |
|---|---|
$.store.book[*].title |
Всички заглавия на книги |
$.store.book[0] |
Първи обект на книга |
$.store.book[?(@.price < 10)] |
Книги по-евтини от $10 |
$.store.book[?(@.category == "fiction")] |
Само художествени книги |
$..price |
Всички стойности на цена в документа |
Функции
- Оценка в реално време — резултатите се актуализират, докато пишете израза или редактирате JSON
- Показва броя на съответствията в отделно поле
- Копиране на бутон в полето на израза за бързо преизползване
- Бутон за поставяне за бързо вмъкване на JSON или изрази от буфера на обмена
- Докладване на грешки за невалиден JSON или неправилно оформени изрази на пътя
Как работи
JSONPath изразите се оценяват спрямо анализирания JSON, използвайки библиотеката jsonpath-plus. Символът $ се отнася до коренния елемент. Дочерните възли се достъпват с . или [], заместители с *, рекурсивно спускане с .. и филтри с [?(...)]. Резултатът винаги е масив от съответстващи стойности, дори ако е намерено само едно съответствие.
Обяснени опции
| Синтаксис | Значение |
|---|---|
$ |
Коренен елемент |
.key или ['key'] |
Дочерно свойство |
[*] |
Всички елементи на масив |
[0] |
Първи елемент на масив (с нулев индекс) |
[-1] |
Последен елемент на масив |
[0,2] |
Елементи с индекс 0 и 2 |
[0:2] |
Елементи от индекс 0 до 1 (резен) |
..key |
Рекурсивно спускане — намерете key на всяка дълбочина |
[?(@.price > 5)] |
Филтър — елементи, където price е по-голямо от 5 |
@ |
Текущ възел (използва се в филтърни изрази) |
Случаи на употреба
- Разработка на API — проверете, че JSONPath селектор, използван в REST клиент, тестов набор или инструмент за картографиране на данни, извлича очаквани полета от отговор на API
- Трансформация на данни — идентифицирайте кои стойности да извлечете от вложени JSON полезни товари, преди да напишете скрипт за трансформация
- Учене на JSONPath — експериментирайте интерактивно със синтаксис на пътя, за да разберете как оператори като
..,[*]и[?()]се държат на реални данни
Съвети
- Използвайте
$..*, за да получите всяка единствена стойност в целия документ — полезно за изследване на неизвестни JSON структури. - Филтърните изрази поддържат сравнения (
==,!=,<,>,<=,>=) и могат да референцират вложени свойства:[?(@.author.name == "Rees")]. - За да съответствате на свойство независимо от неговата дълбочина, използвайте
..рекурсивно спускане:$..titleнамира всички полетаtitleнавсякъде в документа.