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