§

Δοκιμή εκφράσεων JSONPath

Μορφή εξόδου:
Γρήγορη αναφορά JSONPath
Token Meaning
$Ριζικό στοιχείο του εγγράφου
@Τρέχον στοιχείο (σε φίλτρα)
.Τελεστής παιδικού μέλους
..Αναδρομική κατάβαση
*Wildcard: ταιριάζει με κάθε στοιχείο
[*]Όλα τα στοιχεία συστοιχίας
[n]Στοιχείο στο δείκτη n
[start:end]Τμήμα συστοιχίας
[?(@.x)]Φίλτρο: στοιχεία όπου υπάρχει η ιδιότητα x
[?(@.x==1)]Φίλτρο: στοιχεία όπου x = 1
[(@.length-1)]Τελευταίο στοιχείο συστοιχίας

Το JSONPath εμφανίζεται όπου ένα συμβόλαιο API ελέγχεται έναντι πραγματικού φορτίου. Η εκτέλεση εκφράσεων στο πρόγραμμα περιήγησης διατηρεί τα δεδομένα πελατών και τις απαντήσεις προ-έκδοσης μακριά από hosted υπηρεσίες.

Τι είναι το JSONPath;

Μια γλώσσα ερωτημάτων για JSON, ισοδύναμη του XPath για XML. Το IETF δημοσίευσε το RFC 9535 το 2024.

Πώς λειτουργεί το JSONPath

Η έκφραση διαβάζεται αριστερά προς δεξιά και περιηγείται στο JSON βήμα προς βήμα.

  1. Αγκύρωση με τον επιλογέα ρίζας $.
  2. Πλοήγηση σε παιδικά μέλη με τελείες ή αγκύλες.
  3. Αναζήτηση όλων των επιπέδων με ...
  4. Επιλογή στοιχείων συστοιχίας με δείκτη ή wildcard.
  5. Φιλτράρισμα με συνθήκη σε [?(...)].
  6. Επιλογή μορφής εξόδου.

Γιατί να χρησιμοποιήσετε αυτό το JSONPath tester;

  • Το JSON σας δεν φεύγει ποτέ από το πρόγραμμα περιήγησης.
  • Χρησιμοποιεί jsonpath-plus 9.x.
  • Τρεις λειτουργίες εξόδου.
  • preventEval: true — ασφαλή φίλτρα.

Συνήθεις εφαρμογές JSONPath

Το JSONPath εμφανίζεται όπου χρειάζεται εξαγωγή πεδίου από JSON.

  • Postman tests.
  • k6 load tests.
  • AWS Step Functions, kubectl.

Παράδειγμα

Η έκφραση $.store.book[?(@.price<10)].title επιστρέφει τίτλους βιβλίων κάτω από 10.

Δημιουργήστε πρωτότυπα εδώ και μεταφέρετε σε Postman, k6, kubectl.

Τι είναι το JSONPath;

Μια γλώσσα ερωτημάτων για JSON, που προτάθηκε το 2007 και τυποποιήθηκε ως RFC 9535 το 2024.

Διαφορά από JMESPath ή jq;

Το JMESPath είναι αυστηρότερο. Το jq είναι Turing-πλήρες. Το JSONPath βρίσκεται μεταξύ τους.

Ποια διάλεκτο χρησιμοποιεί;

jsonpath-plus 9.x. Υποστηρίζει Goessner 2007, RFC 9535 και επεκτάσεις.

Μπορώ να αντιγράψω μεμονωμένες τιμές;

Ναι. Το κουμπί Αντιγραφή αντιγράφει ολόκληρο το αποτέλεσμα.