c# - 如何在 .NET Core 中将 JSON 序列化为没有转义字符的字符串?

标签 c# json .net-core

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

我试过这段代码,但它产生了一个带有引号转义字符的字符串:

string s = JsonConvert.SerializeObject(sensorData);

这是结果字符串:

"{\"Id\":\"100201\",\"Timestamp\":\"2018-02-08T08:43:51.7189855Z\",\"Value\":12.3}"

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

"{"Id":"100201","Timestamp":"2018-02-08T08:43:51.7189855Z","Value":12.3}"

最佳答案

转义字符不存在。如果我们可以合理地假设您的 sensorData 是这样的:

class SensorData
{
    public int Id { get; set; }
    public DateTime TimeStamp { get; set; }
    public double Value { get; set; }
}

那么如果我这样做:

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

输出是:

{"Id":100201,"TimeStamp":"2018-02-08T10:30:40.2290218+00:00","Value":12.3}

转义字符是一个 IDE 特性,不是 JSON 的一部分。 IDE 会向您显示字符串,您需要将它们复制并粘贴到您的目标语言中;所以:如果值是上面发布的 JSON,则 IDE 将显示它作为 C# 文字:

"{\"Id\":100201, ...snip... , \"Value\":12.3}"

但是:那不是字符串的内容

关于c# - 如何在 .NET Core 中将 JSON 序列化为没有转义字符的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48683160/

相关文章:

java - 如何将返回给Camel的 map 转换为JSON?

c# - 异常 : Ambiguous column name

c# - c# 中的 PayPal 结帐问题

ios - "Refreshing"应用程序在 Swift 中的 HTTP 发布请求之后?

python - 使用 pandas dataframe 中的 JSON 对象优化解析文件,其中某些行中可能缺少键

c# - 尝试将参数传递给新的 EventHandler

.net-core - netcoreapp1.1 上没有 SqlParameter.UdtTypeName!如何使用UDT?

c# - .net 核心模拟 dbcontext 不工作(静态问题?)

c# - 如何转换键值对json字符串响应中的字符串列表?

c#正则表达式问题