jmespath / jmespath.site

The repo for the jmespath.org website.
http://jmespath.org/
Apache License 2.0
56 stars 51 forks source link

Tutorial: list vs array #113

Open abentley opened 2 years ago

abentley commented 2 years ago

It's not clear to me whether "list" and "array" are intended to have different meanings in the tutorial.

I could imagine that "array" would refer to the actual json datatype, while "list" would be a more general sequence of values. But the description of index expressions and slices use "array" consistently, implying these can only apply to arrays and not lists in general. That doesn't seem desirable.

This pair of sentences suggests that lists and arrays are equivalent

A list projection is only valid for a JSON array. If the value is not a list, then the result of the expression is null.

If lists are a superset of arrays, then this leaves the behaviour of a list projection undefined if the value is a non-array list.

This sentence is also confusing if the index operator can only operate on an array, not a list:

What if you wanted the first element in that list?

If "list" and "array" are intended to be different, some explanation of the difference would be helpful. If they are intended to be the same, I suggest using the JSON term "array" as much as possible. (And this is coming from a pythonista!)

abentley commented 2 years ago

The spec mixes "list" and "array" seemingly without distinguishing them

An index expression is used to access elements in a list

Given an array of length N, an index of -1 would be equal to a positive index of N - 1, which is the last element of the list