C#中JSON字符串中的转义字符

摘要:
创建新的。NETCore控制台项目,然后导入Json的NuGet包。NET:Newtonsoft。杰森。我们使用JsonNET将类序列化为Json字符串,然后将Json字符串反序列化为类。代码如下:使用Newtonsoft。Json;使用系统;namespaceNetCoreJson{publicclassMessageContainer{publicstringMessa

新建一个.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 = "这是带换行的消息:今天天气真好
适合出去郊游
真是愉快的一天",
                Message3 = "这是带其它转义字符的消息:制表符	退格符斜线\空格 "
            };

            string toJsonMessage = JsonConvert.SerializeObject(messageContainerToJson, Formatting.Indented);

            Console.WriteLine(toJsonMessage);
            /*
                {
                  "Message1": "这是带双引号转义字符的消息:"今天是个好天气!"",
                  "Message2": "这是带换行的消息:今天天气真好
适合出去郊游
真是愉快的一天",
                  "Message3": "这是带其它转义字符的消息:制表符	退格符斜线\空格 "
                }
             */

            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可以将字符串中"和 等转义字符,进行序列化和反序列化,上面程序的运行结果如下:

C#中JSON字符串中的转义字符第1张

所以可以看到在JSON中,可以很好地处理转义字符的序列化和反序列化。

免责声明:文章转载自《C#中JSON字符串中的转义字符》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一、在 ASP.NET Core 中使用 SignalR使用c++控制sqlite3下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Word,Excel,pdf,txt等文件上传并提取内容

近期项目需求:1.要用到各种文件上传,下载。 2.并对文件进行搜索。 3.仅仅要文件里包括有搜索的内容,所有显示出来。 今天正好有时间整理一下,方便以后阅读,及对须要用到的朋友提供微薄之力。首先在实现文件上传时,使用的struts2自带的文件上传功能,通过流的方式将文件保存,在下载的时候通过流的方式写出就可以。这个实现起来不是非常难,主要是对各种文件...

FLINK基础(104): DS算子与窗口(15)多流转换算子(6) CONNECT, COMAP和COFLATMAP(2)CoProcessFunction

CoProcessFunction   对于两条输入流,DataStream API提供了CoProcessFunction这样的low-level操作。CoProcessFunction提供了操作每一个输入流的方法: processElement1()和processElement2()。   类似于ProcessFunction,这两种方法都通过Con...

android环境下的即时通讯

首先了解一下即时通信的概念。通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯。消息通道可由TCP/IP UDP实现。通俗讲就是把一个人要发送给另外一个人的消息对象(文字,音视频,文件)通过消息通道(C/S实时通信)进行传输的服务。即时通讯应该包括四种形式,在线直传、在线代理、离线代理、离线扩展。在...

关于springMVC

一 mvc设计模式 MVC 全名是 Model View Controller,是 模型(model)-视图(view)-控制器(controller) 的缩写, 是⼀种⽤于设计创建 Web 应⽤程序表现层的模式。 MVC 中每个部分各司其职:Model(模型):模型包含业务模型和数据模型,数据模型⽤于封装数据,业务模型⽤于处理业务。View(视图): 通...

DataGrid控件用法

实现模版列有超连接外观,一点实现打开或者下载的功能。 <ItemTemplate><a href='http://t.zoukankan.com/download.aspx?DocTitle=<%# DataBinder.Eval(Container.DataItem,"DocTitle") %>'> <%# Dat...

UUID.randomUUID()简单介绍

UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式。由以下几部分的组合:当前日期和时间(UUID的第一个部分与...