Some of the logintime's in the JSON data probably have timezones.
This raises an error when converting it to DATETIME.
But it's fine when those are converted to DATETIME2 or DATETIMEOFFSET.
And DATETIMEOFFSET is then probably the better option, since it'll contain the timezone.
Simplified tests:
SELECT *
FROM OPENJSON('[{"LoginTime": "2021-12-25T07:48:59+01:00"}]')
WITH ( LoginTime datetime '$.LoginTime' )
GO
Msg 241 Level 16 State 1 Line 1
Conversion failed when converting date and/or time from character string.
SELECT *
FROM OPENJSON('[{"LoginTime": "2021-12-25T07:48:59+01:00"}]')
WITH ( LoginTime datetime2 '$.LoginTime' )
GO
| LoginTime |
| :-------------------------- |
| 2021-12-25 07:48:59.0000000 |
SELECT *
, SWITCHOFFSET(LoginTime, '+00:00') AS LoginTimeZulu
FROM OPENJSON('[{"LoginTime": "2021-12-25T07:48:59+03:00"}]')
WITH ( LoginTime datetimeoffset '$.LoginTime' )
GO
LoginTime | LoginTimeZulu
:--------------------------------- | :---------------------------------
2021-12-25 07:48:59.0000000 +03:00 | 2021-12-25 04:48:59.0000000 +00:00
db<>fiddle here