我想将 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/