だから私は、生成された二重引用符の前に現れるからエスケープ文字を防ぐためにクエリをラップするSQL Serverの2016エスケープ文字の問題
私が使用しているJSON_QUERY「JSONのための」使用してSQL Server 2016からのJSONファイルを( ")を生成しています
注意すべき点は、次のメソッドを使用してSQLのdatetimeオブジェクトを変換していることです。CONVERT(VARCHAR、[dateEntity ]、101)
例(これはサブクエリです)
JSON_QUERY((
SELECT [LegacyContactID]
,[NameType]
,[LastName]
,[FirstName]
,[Active]
,[Primary]
,CONVERT(VARCHAR,[StartDate],101) AS [StartDate]
,CONVERT(VARCHAR,[EndDate],101) AS [EndDate]
FROM [LTSS].[ConsumerFile_02_ContactName]
WHERE [LegacyContactID] = ContactList.[LegacyContactID]
FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER
)) AS ContactName
そして結果は、私はエスケープを排除するためにJSON_QUERYに包まれた全体のクエリを持っていますが、それはまだ前方には、日付にスラッシュエスケープ
"ContactName": {
"LegacyContactID": "123456789",
"NameType": "Name",
"LastName": "Jack",
"FirstName": "Apple",
"Active": true,
"Primary": true,
"StartDate": "04\/01\/2016",
"EndDate": "04\/30\/2016"
}
になります。
また、変換を行わずに日付を文字列として渡しても、同じ結果が得られます。
洞察?
何が起こっていることはCONVERT関数が「MM/DD/YYYY」の形式で日付を生成し、その後 'JSON AUTO、WITHOUT_ARRAY_WRAPPERためのものですので、これは動作しません。 'はエスケープシーケンスをスラッシュに追加します。 select文の周りに 'JSON_QUERY'を適用しようとしましたが、日付には役立ちません。 – Chris
@Chris更新を参照してください。 –