新建一個.NET Core控制台項目,然后引入Json.NET的NuGet包:Newtonsoft.Json,我們使用Json.NET將類序列化為JSON字符串,再將JSON字符串反序列化為類,代碼如下:
using Newtonsoft.Json; using System; namespace NetCoreJson { public class MessageContainer { public string Message1 { get; set; } public string Message2 { get; set; } public string Message3 { get; set; } } class Program { static void Main(string[] args) { MessageContainer messageContainerToJson = new MessageContainer() { Message1 = "這是帶雙引號轉義字符的消息:\"今天是個好天氣!\"", Message2 = "這是帶換行的消息:今天天氣真好\n適合出去郊游\n真是愉快的一天", Message3 = "這是帶其它轉義字符的消息:制表符\t退格符\b斜線\\空格 " }; string toJsonMessage = JsonConvert.SerializeObject(messageContainerToJson, Formatting.Indented); Console.WriteLine(toJsonMessage); /* { "Message1": "這是帶雙引號轉義字符的消息:\"今天是個好天氣!\"", "Message2": "這是帶換行的消息:今天天氣真好\n適合出去郊游\n真是愉快的一天", "Message3": "這是帶其它轉義字符的消息:制表符\t退格符\b斜線\\空格 " } */ string fromJsonMessage = "{\"Message1\":\"這是帶雙引號轉義字符的消息:\\\"今天是個好天氣!\\\"\",\"Message2\":\"這是帶換行的消息:今天天氣真好\\n適合出去郊游\\n真是愉快的一天\",\"Message3\":\"這是帶其它轉義字符的消息:制表符\\t退格符\\b斜線\\\\空格 \"}"; MessageContainer messageContainerFromJson = JsonConvert.DeserializeObject<MessageContainer>(fromJsonMessage); Console.WriteLine("Message1為:{0}", messageContainerFromJson.Message1); Console.WriteLine("Message2為:{0}", messageContainerFromJson.Message2); Console.WriteLine("Message3為:{0}", messageContainerFromJson.Message3); Console.WriteLine("Press any key to end..."); Console.ReadKey(); } } }
可以看到Json.NET可以將字符串中\"和\n等轉義字符,進行序列化和反序列化,上面程序的運行結果如下:
所以可以看到在JSON中,可以很好地處理轉義字符的序列化和反序列化。