私はSQLでJSONを初めて使用します。「JSON テキストの形式が正しくありません。位置 0 に予期しない文字 'N' が見つかりました。」というエラーが表示されます。以下の実行中 -
DECLARE @json1 NVARCHAR(4000)
set @json1 = N'{"name":[{"FirstName":"John","LastName":"Doe"}], "age":31, "city":"New York"}'
DECLARE @v NVARCHAR(4000)
set @v = CONCAT('N''',(SELECT value FROM OPENJSON(@json1, '$.name')),'''')
--select @v as 'v'
SELECT JSON_VALUE(@v,'$.FirstName')
「 select @v as 'v' 」は私に与えます
N'{"FirstName":"John","LastName":"Doe"}'
しかし、最後の選択ステートメントでそれを使用すると、エラーが発生します。
DECLARE @v1 NVARCHAR(4000)
set @v1 = N'{"FirstName":"John","LastName":"Doe"}'
SELECT JSON_VALUE(@v1,'$.FirstName') as 'FirstName'
も正常に動作します。