在使用 JsonConvert.SerializeObject 将 C# 对象序列化为 JSON 字符串时,出现了奇怪转义数组的问题,如下所示:
int[] temp = new int[] { 1, 2, 3 };
string json = JsonConvert.SerializeObject(temp);
// 输出结果为:"[1,2,3]"
解决该问题的方法是在序列化过程中传递一个转义字符处理函数给 JsonSerializerSettings 对象的 StringEscapeHandling 属性。这个函数将会在序列化过程中用于转义字符串中的反斜杠字符。
int[] temp = new int[] { 1, 2, 3 };
JsonSerializerSettings settings = new JsonSerializerSettings
{
StringEscapeHandling = StringEscapeHandling.EscapeHtml
};
string json = JsonConvert.SerializeObject(temp, settings);
// 输出结果为:"[1,2,3]"
当然,还有其他的 StringEscapeHandling 的值可供选择,具体可以参考官方文档。