如何在没有.NET Core的escaope字符的情况下将JSON序列化为字符串?

Ola*_*avT 3 c# json .net-core

我想在.NET Core的字符串中将C#对象序列化为JSON.

我已尝试使用此代码,但它会生成带引号的转义字符的字符串:

string s = JsonConvert.SerializeObject(sensorData);
Run Code Online (Sandbox Code Playgroud)

这是结果字符串:

"{\"Id\":\"100201\",\"Timestamp\":\"2018-02-08T08:43:51.7189855Z\",\"Value\":12.3}"
Run Code Online (Sandbox Code Playgroud)

如何在没有像这样的转义字符的情况下将对象序列化为字符串?

"{"Id":"100201","Timestamp":"2018-02-08T08:43:51.7189855Z","Value":12.3}"
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 8

转义字符不在那里.如果我们可以合理地假设你的sensorData是:

class SensorData
{
    public int Id { get; set; }
    public DateTime TimeStamp { get; set; }
    public double Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

var sensorData = new SensorData {
    Id = 100201,
    TimeStamp = DateTime.Now,
    Value = 12.3,
};
string s = JsonConvert.SerializeObject(sensorData);
Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)

输出是:

{"Id":100201,"TimeStamp":"2018-02-08T10:30:40.2290218+00:00","Value":12.3}
Run Code Online (Sandbox Code Playgroud)

转义字符是IDE功能,不是JSON的一部分.IDE会向您显示字符串,因为您需要将它们复制并粘贴到目标语言中 ; so:如果值是上面发布的JSON,那么IDE将把它显示为C#文字:

"{\"Id\":100201, ...snip... , \"Value\":12.3}"
Run Code Online (Sandbox Code Playgroud)

但是:这不是字符串的内容.