in Libraries/src/Amazon.Lambda.RuntimeSupport/ExceptionHandling/JsonExceptionWriterHelpers.cs [29:96]
public static string EscapeStringForJson(string str)
{
if (str == null)
return null;
int n = str.Length;
var sb = new StringBuilder(n * 2);
for (int i = 0; i < n; i++)
{
char c = str[i];
switch (c)
{
case '\n':
sb.Append(@"\n");
break;
case '\r':
sb.Append(@"\r");
break;
case '\t':
sb.Append(@"\t");
break;
case '"':
sb.Append(@"\""");
break;
case '\\':
sb.Append(@"\\");
break;
case '\f':
sb.Append(@"\f");
break;
case '\b':
sb.Append(@"\b");
break;
case '\u0085': // Next Line
sb.Append(@"\u0085");
break;
case '\u2028': // Line Separator
sb.Append(@"\u2028");
break;
case '\u2029': // Paragraph Separator
sb.Append(@"\u2029");
break;
default:
if (c < ' ')
{
// Turn into a \uXXXX sequence
sb.Append(@"\u");
sb.Append(IntToHex((int)c));
}
else
{
sb.Append(c);
}
break;
}
}
return sb.ToString().Trim();
}