序列化动态对象时删除转义符

pra*_*thi 2 c# json.net

这个问题可能是重复的,但是我没有找到满意的答案,所以这就是为什么我提出这个问题。

我正在研究动态对象的序列化。当我序列化动态对象时,API将响应返回为

"{\"firstname\":\"prasanthi\",\"lastname\":\"kota\"}"
Run Code Online (Sandbox Code Playgroud)

我不想使用string.ReplaceRegexPattern。还有其他方法吗?

我已经尝试过JavaScriptSerializer,但是它在引号中加上了转义符(\")。这是我的代码:

    dynamic d = new ExpandoObject();
    d.firstname = "prasanthi";
    d.lastname = "kota"; 

   string serialized_info = JsonConvert.SerializeObject(d);
Run Code Online (Sandbox Code Playgroud)

更新:

我在代码的另一部分中使用了serialized_info,我不想在那儿加斜杠。因此,我想先删除斜线。

我累了评论中提到的

dynamic x = new { firstname = "prasanthi", lastname = "kota" }; var serialized_info = JsonConvert.SerializeObject(x,Formatting.Indented);

这正在显示

"{\r\n  \"firstname\": \"prasanthi\",\r\n  \"lastname\": \"kota\"\r\n}"
Run Code Online (Sandbox Code Playgroud)

我认为这不是我的问题的答案。除了string.replace以外,您还能以其他任何方式建议我吗

Mar*_*ell 5

这里没有问题。该\只出现在IDE辅助调试-视觉上表示以同样的方式,你将它写入字符串在C#中。它并不真正包含转义字符。如果您使用:

Console.Write(serialized_info);
Run Code Online (Sandbox Code Playgroud)

要么:

File.WriteAllText(path, serialized_info);
Run Code Online (Sandbox Code Playgroud)

那么您将看到正常的正确JSON。C#字符串文字:

"{\"firstname\":\"prasanthi\",\"lastname\":\"kota\"}"
Run Code Online (Sandbox Code Playgroud)

正是包含内容的字符串:

{"firstname":"prasanthi","lastname":"kota"}
Run Code Online (Sandbox Code Playgroud)