JSONPath-testaustyökalu
Liitä JSON ja testaa JSONPath-lausekkeita interaktiivisesti. Katso vastaavat tulokset reaaliajassa, esimerkkipoluilla pääset alkuun nopeasti.
Syöte
Tuloste
Lue lisää
Mikä on JSONPath?
JSONPath on kyselykieli JSON-muodolle, samankaltainen kuin XPath XML:lle. Sen avulla voit navigoida ja poimia tietoja JSON-rakenteesta polkulausekkeilla. JSONPath-lauseke alkaa $-merkillä, joka edustaa dokumentin juurta, ja käyttää piste-notaatiota (.key) tai hakasulkunotaatiota (['key']) objektien läpikäyntiin sekä [index]-merkintää taulukon elementtien käyttöön.
JSONPath kuvaili alun perin Stefan Gössner vuonna 2007, ja siitä on sittemmin tullut laajalti käytetty standardi API:issa, testausympäristöissä ja tietojen käsittelyputkissa. Sitä tuetaan monissa ohjelmointikielissä ja työkaluissa, kuten JavaScript, Python, Java ja tietokannoissa kuten PostgreSQL ja MySQL.
Työkalun kuvaus
Tämän työkalun avulla voit liittää minkä tahansa kelvollisen JSON-dokumentin ja kirjoittaa JSONPath-lausekkeen sen kyselyyn. Tulokset näytetään välittömästi kirjoitettaessa, ja kaikki vastaavat arvot näkyvät muotoiltuna JSON-taulukkona. Osumien määrä näytetään erikseen, jotta voit nopeasti varmistaa, kuinka monta solmua valittiin.
Esimerkit
Syöte 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"
}
]
}
}| Lauseke | Tulos |
|---|---|
$.store.book[*].title |
Kaikki kirjojen otsikot |
$.store.book[0] |
Ensimmäinen kirjaobjekti |
$.store.book[?(@.price < 10)] |
Kirjat, joiden hinta on alle 10 dollaria |
$.store.book[?(@.category == "fiction")] |
Vain fiktiokirjat |
$..price |
Kaikki hintaarvot dokumentissa |
Ominaisuudet
- Reaaliaikainen arviointi — tulokset päivittyvät kirjoitettaessa lauseketta tai muokattaessa JSON-tietoa
- Osumien määrä näytetään omassa kentässä
- Kopiointipainike lausekekentässä nopeaa uudelleenkäyttöä varten
- Liitä-painike JSON:n tai lausekkeiden nopeaa liittämistä varten leikepöydältä
- Virheraportointi virheelliselle JSON:lle tai väärin muodostetuille polkulausekkeille
Kuinka se toimii
JSONPath-lausekkeet arvioidaan jäsennettyä JSON-tietoa vastaan jsonpath-plus-kirjaston avulla. $-symboli viittaa juurielementtiin. Alielementit käytetään . tai [] merkinnöillä, jokerit * merkinnöllä, rekursiivinen laskeutuminen .. merkinnöllä ja suodattimet [?(...)] merkinnöllä. Tulos on aina taulukko vastaavista arvoista, vaikka vain yksi osuma löytyisi.
Vaihtoehdot selitettynä
| Syntaksi | Merkitys |
|---|---|
$ |
Juurielementti |
.key tai ['key'] |
Aliobjektin ominaisuus |
[*] |
Kaikki taulukon elementit |
[0] |
Ensimmäinen taulukon elementti (nolla-indeksoitu) |
[-1] |
Viimeinen taulukon elementti |
[0,2] |
Elementit indekseissä 0 ja 2 |
[0:2] |
Elementit indeksistä 0 indeksiin 1 (siivu) |
..key |
Rekursiivinen laskeutuminen — etsi key mistä tahansa syvyydestä |
[?(@.price > 5)] |
Suodatin — elementit, joissa price on suurempi kuin 5 |
@ |
Nykyinen solmu (käytetään suodatinlausekkeissa) |
Käyttötapaukset
- API-kehitys — varmista, että REST-asiakkaassa, testisarjassa tai tietojen yhdistämistyökalussa käytetty JSONPath-valitsin poimii API-vastauksesta odotettavat kentät
- Tietojen muunnos — tunnista, mitkä arvot poimitaan sisäkkäisistä JSON-kuormista ennen muunnosskriptin kirjoittamista
- JSONPathin oppiminen — kokeile polkusyntaksia interaktiivisesti ymmärtääksesi, kuinka operaattorit kuten
..,[*]ja[?()]toimivat todellisilla tiedoilla
Vinkkejä
- Käytä
$..*saadaksesi jokaisen arvon koko dokumentista — hyödyllinen tuntemattomien JSON-rakenteiden tutkimiseen. - Suodatinlausekkeissa tuetaan vertailuja (
==,!=,<,>,<=,>=) ja ne voivat viitata sisäkkäisiin ominaisuuksiin:[?(@.author.name == "Rees")]. - Jotta ominaisuus vastaisi sen syvyydestä riippumatta, käytä
..rekursiivista laskeutumista:$..titlelöytää kaikkititle-kentät dokumentissa mistä tahansa.