Mis on JSONPath?

JSONPath on päringukeel JSON-i jaoks, sarnane sellele, kuidas XPath töötab XML-iga. See võimaldab teil navigeerida ja eraldada andmeid JSON-struktuuri kaudu, kasutades teekonnalauseid. JSONPath-avaldis algab $-ga, mis esindab dokumendi juurt, ja kasutab punktmärke (.key) või sulgavaldist (['key']) objektide läbimiseks ning [index] massiivi elementide juurdepääsuks.

JSONPath kirjeldas algselt Stefan Gössner 2007. aastal ja on sellest ajast saadik muutunud laialdaselt kasutatavaks standardiks API-des, testimisraamistikes ja andmetöötlusprotsessides. Seda toetatakse paljudes keeltes ja tööriistades, sealhulgas JavaScript, Python, Java ja andmebaasides nagu PostgreSQL ja MySQL.

Tööriista kirjeldus

See tööriist võimaldab teil kleepida mis tahes kehtiva JSON-dokumendi ja kirjutada JSONPath-avaldise selle pärimiseks. Tulemused kuvatakse koheselt, kui tippite, näidates kõiki sobivaid väärtusi vormindatud JSON-massiivina. Vastetuste arv kuvatakse eraldi, et saaksite kiiresti kontrollida, mitu sõlme valiti.

Näited

Sisend 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"
      }
    ]
  }
}
Avaldis Tulemus
$.store.book[*].title Kõik raamatute pealkirjad
$.store.book[0] Esimene raamatu objekt
$.store.book[?(@.price < 10)] Raamatud, mis on odavamad kui $10
$.store.book[?(@.category == "fiction")] Ainult ilukirjanduse raamatud
$..price Kõik hinnaväärtused dokumendi kõikjal

Funktsioonid

  • Reaalajas hindamine — tulemused värskendatakse, kui tippite avaldist või muudate JSON-i
  • Vastetuste arvu kuvamine eraldi väljal
  • Kopeerimise nupp avaldise väljal kiireks taaskasutamiseks
  • Kleepimise nupp JSON-i või avaldiste kiireks sisestamiseks lõikepuhvrist
  • Vigade teatamine kehtetute JSON-i või valesti koostatud teekonnalausete puhul

Kuidas see töötab

JSONPath-avaldisi hinnatakse parsitud JSON-i suhtes, kasutades jsonpath-plus teeki. Sümbol $ viitab juurelemendile. Alamsõlmedele pääseb juurde . või [] abil, metamärkidele * abil, rekursiivse laskumisega .. ja filtritega [?(...)]. Tulemus on alati sobivate väärtuste massiiv, isegi kui leiti ainult üks vaste.

Valikud selgitatud

Süntaks Tähendus
$ Juurelement
.key või ['key'] Alamobjekti omadus
[*] Kõik massiivi elemendid
[0] Esimene massiivi element (nullist alates)
[-1] Viimane massiivi element
[0,2] Elemendid indeksites 0 ja 2
[0:2] Elemendid indeksist 0 kuni 1 (viil)
..key Rekursiivne laskumine — leia key mis tahes sügavusel
[?(@.price > 5)] Filter — elemendid, kus price on suurem kui 5
@ Praegune sõlm (kasutatakse filtriavaldistes)

Kasutamise juhtumid

  • API arendamine — veenduge, et REST-kliendis, testimispaketis või andmete vastendamise tööriistas kasutatav JSONPath-valija eraldab API-vastusest oodatud väljad
  • Andmete teisendamine — tuvastage, millised väärtused tuleb eraldada pesastatud JSON-i last enne teisendamise skripti kirjutamist
  • JSONPath õppimine — katsetage teekonnasüntaksit interaktiivselt, et mõista, kuidas operaatorid nagu .., [*] ja [?()] käituvad tegelike andmetega

Näpunäited

  • Kasutage $..* kõigi väärtuste saamiseks kogu dokumendis — kasulik tundmatu JSON-struktuuri uurimiseks.
  • Filtriavaldised toetavad võrdlusi (==, !=, <, >, <=, >=) ja võivad viidata pesastatud omadustele: [?(@.author.name == "Rees")].
  • Omaduse sobitamiseks sõltumata selle sügavusest kasutage .. rekursiivset laskumist: $..title leiab kõik title väljad dokumendi kõikjal.