System.Text.Json.JsonSerializer.Serialize将返回字符串括在双引号中

问题描述

System.Text.Json.JsonSerializer.Serialize将返回字符串用双引号引起来。

我想我可以从返回字符串中删除一个和最后一个字符,但是想知道这样做的目的是什么。

认情况下,有什么我可以使序列化程序排除它们的吗?

string linkCipherString = JsonSerializer.Serialize<byte[]>(linkCipherBytes);

解决方法

JsonSerializer.Serialize<T>(object)将生成如下的json字符串:

"{\"Id\":1,\"Name\":\"aaa\"}"

字符串文字是字符串类型,可以用引号和@引号两种形式编写。这是C#设计的,您不能更改它。您只能删除字符串中的双引号像\"这样的数据。

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/reference-types#the-string-type