C#序列化JSON加轉義
在.NET開發中,將對象序列化成JSON是一項常見任務。當對象中的字符串屬性包含特殊字符時,我們需要對這些特殊字符進行轉義。本文介紹如何通過C#代碼實現JSON序列化并自動轉義特殊字符。
using System; using System.Web.Script.Serialization; public class Person { public string Name { get; set; } public string Address { get; set; } } public class Program { static void Main(string[] args) { Person person = new Person { Name = "John", Address = "123 Main St, Anytown\"USA\"" }; JavaScriptSerializer serializer = new JavaScriptSerializer(); string json = serializer.Serialize(person); Console.WriteLine(json); } }
在上述代碼中,我們創建了一個名為Person的簡單類,并在Main方法中創建了一個Person對象。 Person對象的Address屬性包含雙引號和反斜杠等特殊字符。
我們使用.NET Framework提供的JavaScriptSerializer類將Person對象序列化為JSON字符串。由于Address屬性中包含特殊字符,JavaScriptSerializer會自動對字符串進行轉義。
運行上述代碼后,輸出結果如下所示:
{"Name":"John","Address":"123 Main St, Anytown\"USA\""}
正如我們所看到的,JSON字符串中Address屬性中的雙引號和反斜杠已經被轉義為“\”。
在C#中,使用JavaScriptSerializer類的Serialize方法序列化對象時,會自動對字符串進行轉義。如果您需要自己手動轉義特殊字符,則可以使用.NET Framework中提供的Escape方法:
string originalString = "This is a \"test\" string."; string escapedString = System.Uri.EscapeDataString(originalString);
上述代碼使用了.NET Framework提供的EscapeDataString方法將字符串originalString中的特殊字符轉義,并將轉義后的字符串存儲在變量escapedString中。