jmespath.site icon indicating copy to clipboard operation
jmespath.site copied to clipboard

Tutorial: list vs array

Open abentley opened this issue 2 years ago • 1 comments

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 avatar Oct 16 '22 14:10 abentley

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

abentley avatar Oct 16 '22 14:10 abentley