diff --git a/Src/Newtonsoft.Json/JsonConvert.cs b/Src/Newtonsoft.Json/JsonConvert.cs index 81d50a15..e29f4829 100644 --- a/Src/Newtonsoft.Json/JsonConvert.cs +++ b/Src/Newtonsoft.Json/JsonConvert.cs @@ -409,6 +409,11 @@ namespace Newtonsoft.Json return ToString(value, '"'); } + public static string ToString(string value, StringEscapeHandling stringEscapeHandling) + { + return ToString(value, '"', stringEscapeHandling); + } + /// /// Converts the to its JSON string representation. /// @@ -416,11 +421,16 @@ namespace Newtonsoft.Json /// The string delimiter character. /// A JSON string representation of the . public static string ToString(string value, char delimiter) + { + return ToString(value, delimiter, StringEscapeHandling.Default); + } + + public static string ToString(string value, char delimiter, StringEscapeHandling stringEscapeHandling) { if (delimiter != '"' && delimiter != '\'') throw new ArgumentException("Delimiter must be a single or double quote.", "delimiter"); - return JavaScriptUtils.ToEscapedJavaScriptString(value, delimiter, true); + return JavaScriptUtils.ToEscapedJavaScriptString(value, delimiter, true, stringEscapeHandling); } /// @@ -1113,4 +1123,4 @@ namespace Newtonsoft.Json } #endif } -} \ No newline at end of file +} diff --git a/Src/Newtonsoft.Json/Utilities/JavaScriptUtils.cs b/Src/Newtonsoft.Json/Utilities/JavaScriptUtils.cs index ed618139..6a1e5f3c 100644 --- a/Src/Newtonsoft.Json/Utilities/JavaScriptUtils.cs +++ b/Src/Newtonsoft.Json/Utilities/JavaScriptUtils.cs @@ -224,13 +224,18 @@ namespace Newtonsoft.Json.Utilities } public static string ToEscapedJavaScriptString(string value, char delimiter, bool appendDelimiters) + { + return ToEscapedJavaScriptString(value, delimiter, appendDelimiters, StringEscapeHandling.Default); + } + + public static string ToEscapedJavaScriptString(string value, char delimiter, bool appendDelimiters, StringEscapeHandling stringEscapeHandling) { using (StringWriter w = StringUtils.CreateStringWriter(StringUtils.GetLength(value) ?? 16)) { char[] buffer = null; - WriteEscapedJavaScriptString(w, value, delimiter, appendDelimiters, (delimiter == '"') ? DoubleQuoteCharEscapeFlags : SingleQuoteCharEscapeFlags, StringEscapeHandling.Default, ref buffer); + WriteEscapedJavaScriptString(w, value, delimiter, appendDelimiters, (delimiter == '"') ? DoubleQuoteCharEscapeFlags : SingleQuoteCharEscapeFlags, stringEscapeHandling, ref buffer); return w.ToString(); } } } -} \ No newline at end of file +}