Figured it out: It’s operator error: JSONItem.lookup() on an array type returns not an array, but a JSONItem which itself holds the array items. So I need to write a simple conversion method.
Have you looked at my JSONItem_MTC project? It offers a drop-in replacement for JSONItem that is faster and overcomes some shortcomings in the native class, and separately offers functions to parse JSON into the classic Dictionary/Variant array, and generate JSON from those too.