I am using SQL Server 2016 and want to extract data from array.
But I got stuck.
DECLARE @idvalue NVARCHAR(MAX)='[{"testId":"b29b2327-527c-456d-8346-6bd22d198f21","testValue":"FAILURE","test":"b29b2327-527c-456d-8346-6bd22d198f21:FAILURE","testStartTimestamp":"2020-06-25T09:22:17.299Z"}
,{"testId":"4674bc9c-9551-496b-b488-8e138a4dc459","testValue":"FAILURE","test":"4674bc9c-9551-496b-b488-8e138a4dc459:FAILURE","testStartTimestamp":"2020-06-25T09:22:17.299Z"},{"testId":"38c20ac5-dbb7-43ad-b139-f8fde13d0ea5","testValue":"FAILURE","test":"38c20ac5-dbb7-43ad-b139-f8fde13d0ea5:FAILURE","testStartTimestamp":"2020-06-25T09:22:17.3Z"},{"testId":"4a3b3102-d3fa-4c2c-b3cf-46e6822fae5c","testValue":"FAILURE","test":"4a3b3102-d3fa-4c2c-b3cf-46e6822fae5c:FAILURE","testStartTimestamp":"2020-06-25T09:22:17.3Z"},{"testId":"f80bec6d-ab5c-4f63-8aea-cd2f5179195e","testValue":"FAILURE","test":"f80bec6d-ab5c-4f63-8aea-cd2f5179195e:FAILURE","testStartTimestamp":"2020-06-25T09:22:17.3Z"},{"testId":"e75896d2-f314-4423-87be-ea70b2ba5adb","testValue":"FAILURE","test":"e75896d2-f314-4423-87be-ea70b2ba5adb:FAILURE","testStartTimestamp":"2020-06-25T09:22:17.301Z"}]';
select P_conversations_conversationId,
P_conversations_participants_sessions_flow_outcomes,
JSON_VALUE(REPLACE(P_conversations_participants_sessions_flow_outcomes,'[',''),'$.testId') as testId,
JSON_VALUE(REPLACE(REPLACE(P_conversations_participants_sessions_flow_outcomes,'[',''),']',''),'$.testEndTimestamp') as testEndTimestamp,
JSON_VALUE(REPLACE(@idvalue,'[',''),'$.testValue') AS [testValue],
JSON_VALUE(REPLACE(@idvalue,'[',''),'$.testStartTimestamp') as testStartTimestamp,
JSON_VALUE(REPLACE(@idvalue,'[',''),'$.test') as test
FROM Dashboardtable;
In the declare statement I have given sample data.
dbo.Dashboardtable.OPENJSONand explicit schema, is probbaly your first option.