I want to parse a json-array in my sql-server. I would like to use OPENJSON with WITH to parse specific values into columns. How can I get the index of each array item?
I know, that this works fine with JSON_VALUE and without WITH:
DECLARE @json NVARCHAR(MAX) = '[{"name":"Alpha"},{"name":"Bravo"},{"name":"Charlie"}]'
SELECT [key], JSON_VALUE(value, '$.name')
FROM OPENJSON(@json)
--  key | value
----------------------------------
--    0 | Alpha
--    1 | Bravo
--    2 | Charlie
But when I add WITH I seem to not have access to key anymore.
SELECT [key], name
FROM OPENJSON(@json)
WITH (
  [key] INT, -- does not work
  name NVARCHAR(MAX)
)
--  key | name
----------------------------------
-- NULL | Alpha
-- NULL | Bravo
-- NULL | Charlie
 
    