Screenshot of result
I this example have multi layer json data and using cross join getting those in one table result
declare @jsondata nvarchar(max);
set @jsondata ='{"id":1,"planTypeId":0,"locationId":0,"auditId":0,"empId":0,"accessID":"string","actionItem":"string","resUserID":0,"createdDate":"2019-09-12T13:22:23.805Z","dueDate":"2019-09-12T13:22:23.805Z","lastModified":"2019-09-12T13:22:23.805Z","completedDate":"2019-09-12T13:22:23.805Z","completedBy":0,"status":0,"desc":"string","relQuestionID":0,"catID":0,"equipmentID":0,"steps":[{"id":1,"trnPlanId":1,"dueDate":"2019-09-12T13:22:23.805Z","type":1,"quizId":0,"taskId":0,"docCourseUrl":"string","users":[{"id":1,"empId":1,"status":true}]},{"id":2,"trnPlanId":2,"dueDate":"2019-09-12T13:22:23.805Z","type":2,"quizId":0,"taskId":0,"docCourseUrl":"string","users":[{"id":2,"empId":2,"status":true},{"id":3,"empId":3,"status":true}]}]}';
SELECT
JSON_Value (c.value, '$.id') as Id,
JSON_Value (c.value, '$.type') as planTypeId,
JSON_Value (p.value, '$.id') as userId,
JSON_Value (p.value, '$.empId') as empId
FROM OPENJSON (@jsondata, '$.steps') as c
CROSS APPLY OPENJSON (c.value, '$.users') as p
SELECT
JSON_Value (c.value, '$.id') as Id,
JSON_Value (c.value, '$.type') as planTypeId
FROM OPENJSON (@jsondata, '$.steps') as c