3

私は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'

も正常に動作します。

4

1 に答える 1