I haven't much experience with OPENJSON and I have tried to use the examples but I have been unable to parse the string below
Would anybody be able to help me.
I would like it to be in the format:
Date,TimeSheet.StartTime,TimeSheet.FinishTime,Timesheet.BreakStart,TimeSheet.BreakFinish,Timesheet.EmployeeId,TimeSheet.Notes
[
{
"Date": "0001-01-01T00:00:00+00:00",
"TimeSheet": [
{
"StartTime": "0001-01-01T00:00:00+00:00",
"FinishTime": "0001-01-01T00:00:00+00:00",``
"BreakTimes": [
"0001-01-01T00:00:00+00:00",
"0001-01-01T00:00:00+00:00"
],
"EmployeeId": 1,
"Notes": "Blah, blah, blah..."
}
]
},
{
"Date": "0001-01-01T00:00:00+00:00",
"TimeSheet": [
{
"StartTime": "0001-01-01T00:00:00+00:00",
"FinishTime": "0001-01-01T00:00:00+00:00",
"BreakTimes": [
"0001-01-01T00:00:00+00:00",
"0001-01-01T00:00:00+00:00"
],
"EmployeeId": 1,
"Notes": "Blah, blah, blah..."
}
]
}
]
Here is the code I am trying to use:
DECLARE @json NVARCHAR(MAX)
DECLARE @json2 NVARCHAR(MAX)
SET @json= (Select [TimeSheetTestData] FROM [TimeSheetTestData] WHERE [TimeSheetTestDataId] = 3) -- this is the sample json above
SET @json2=(SELECT Value
FROM OpenJson(@json) where [Key] = 'TimeSheet')
--SELECT [Key], Value
--FROM OpenJson(@json2)
SELECT * FROM
OPENJSON ( @json2 )
WITH (
startTime varchar(200) '$.StartTime' ,
finishTime varchar(200) '$.FinishTime' ,
breakTimes varchar(200) '$.BreakTimes' ,
employeeId varchar(200) '$.EmployeeId' ,
notes varchar(200) '$.Notes'
)