Merge pull request #379 from dogwatch/patch-1

Added JsonConvert.ToString(string, StringEscapeHandling)
This commit is contained in:
James Newton-King
2014-09-23 12:43:15 +12:00
2 changed files with 19 additions and 4 deletions
+12 -2
View File
@@ -409,6 +409,11 @@ namespace Newtonsoft.Json
return ToString(value, '"');
}
public static string ToString(string value, StringEscapeHandling stringEscapeHandling)
{
return ToString(value, '"', stringEscapeHandling);
}
/// <summary>
/// Converts the <see cref="String"/> to its JSON string representation.
/// </summary>
@@ -416,11 +421,16 @@ namespace Newtonsoft.Json
/// <param name="delimiter">The string delimiter character.</param>
/// <returns>A JSON string representation of the <see cref="String"/>.</returns>
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);
}
/// <summary>
@@ -1113,4 +1123,4 @@ namespace Newtonsoft.Json
}
#endif
}
}
}
@@ -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();
}
}
}
}
}