If we were starting from scratch and defining JSON Pointer again I would argue for distinguishing array indices and object names in the syntax. For instance, prefix an object name with "/" and an array index with ":". json-pointer = *segment segment = "/" name / ":" index name = *( unescaped / escaped ) unescaped = %x00-2E / %x30-39 / %x3B-7D / %x7F-10FFFF escaped = "~" ( "0" / "1" / "2" ) index = "0" / %x31-39 *(%x30-39) / "-" 1. It makes parsing marginally harder: you cannot just split on "/" and unescape each segment. 2. It doesn't make much difference for selecting a value from some JSON, or for finding a spot to insert a new value. 3. It would allow you to automatically create object *or array* ancestors when setting a new value (eg adding 23 at /a:0/b:0 to {} could give {"a":[{"b":[23]}]}). 4. It might encourage better validation of pointers, but that is probably wishful thinking. But JSON Pointer drafts have used the /{name|index} format for a year. There are a bunch of implementations. The difference is minor in most circumstances. So while I would be happy to change, I am also comfortable staying with the current pointer syntax. > There's no good reason for it to be that way, is there? I don't think so. -- James Manger