System.Text.Json.JsonSerializer.Serialize将返回字符串括在双引号中。我想我可以从返回字符串中删除第一个和最后一个字符,但我想知道这样做的目的是什么。有什么可以让序列化程序在默认情况下排除它们吗?
System.Text.Json.JsonSerializer.Serialize
string linkCipherString = JsonSerializer.Serialize<byte[]>(linkCipherBytes);
kulphzqa1#
使用转换器去除引号:
public class StringJsonConverter: JsonConverter<String> { public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) => reader.GetString(); public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options) => writer.WriteStringValue(value.Replace("\"", "")); } var serializeOptions = new JsonSerializerOptions { Converters = { new StringJsonConverter() } }; JsonSerializer.Serialize(linkCipher, serializeOptions);
pftdvrlh2#
JsonSerializer.Serialize<T>(object)将生成如下所示的json字符串:
JsonSerializer.Serialize<T>(object)
"{\"Id\":1,\"Name\":\"aaa\"}"
字符串常量是字符串类型,可以写为两种形式,引号和@-引号。这是C#的设计,您不能更改它。您只能删除字符串数据中的双引号,如\"。https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/reference-types#the-string-type
@
\"
2条答案
按热度按时间kulphzqa1#
使用转换器去除引号:
pftdvrlh2#
JsonSerializer.Serialize<T>(object)
将生成如下所示的json字符串:字符串常量是字符串类型,可以写为两种形式,引号和
@
-引号。这是C#的设计,您不能更改它。您只能删除字符串数据中的双引号,如\"
。https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/reference-types#the-string-type