SQL Server
SQL Server
JSON Escape and Unescape a String
Demonstrates how to JSON escape or unescape a string.Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @sb int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
EXEC sp_OAMethod @sb, 'Append', @success OUT, 'backslash: \\, A: \u0041'
EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
PRINT @sTmp0
-- The output is:
-- backslash: \\, A: \u0041
-- The keyword "json" can be used
-- to escape and unescape. To escape is to encode. To unescape is to decode.
-- Unescape (decode) the string in sb.
EXEC sp_OAMethod @sb, 'Decode', @success OUT, 'json', 'utf-8'
EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
PRINT @sTmp0
-- After JSON unescaping:
-- backslash: \, A: A
-- Now JSON escape the string.
EXEC sp_OAMethod @sb, 'Encode', @success OUT, 'json', 'utf-8'
EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT
PRINT @sTmp0
-- After JSON escaping:
-- backslash: \\, A: A
-- Note: The "A" is not escaped to "\u0041" because there is no need.
-- The "\uXXXX" format would be produced for non-printable control chars.
EXEC @hr = sp_OADestroy @sb
END
GO