A JSONPath Internet Draft

Here's how I got involved in the IETF JSONPath Working Group.

A couple of years ago I found myself needing to use JSONPath in a work project, but I couldn't find a spec other than Stefan Gössner's original article. Since the project was in Go, I looked for a Go implementation of JSONPath which documented the syntax and semantics clearly. Since the project was aimed at Kubernetes, I also needed it to accommodate YAML. I ended up specifying and implementing a new Go implementation: yaml-jsonpath.

Towards the end of this effort, I decided there was a need for a standard¹. I settled on the IETF and gathered together a small group of JSONPath implementers (found via Christoph Burgmer's excellent JSONath comparison project). Together we cooked up an initial spec and published it as an internet draft.

Around the same time, Stefan Gössner and IETF veteran Carsten Bormann submitted their own draft based closely on Stefan's original article. We joined forces in a Working Group with the help of James Gruessing, Tim Bray, and others. After agreeing a charter, we merged our drafts, and have been iterating on the spec for about a year.

There are a few loose ends, but we hope to begin the submission process for an RFC before very long. This may be the end of the beginning, rather than the beginning of the end.

Footnote

¹ I'd worked in software standards in the past, such as OSGi and JSR 291, which brought OSGi into the Java Community Process.