You've got a 200-line JSON response. You need the email of every user whose lastLogin is older than 30 days, but only from the team department, sorted by id . You start writing a .filter().map() chain and twenty minutes later you're debugging an undefined because one user's meta object is missing. This is what JSONPath was built for. It's a query language for JSON, the way XPath is for XML. You can write $.users[?(@.lastLogin < @.threshold)].email and skip the imperative gymnastics. This is the cheat sheet I keep open while writing API tests, debugging GraphQL responses, and combing through CloudWatch logs. Real syntax, real payloads, the operators that actually show up in practice, and the gotchas that catch people who learned JSONPath from one tutorial.β¦