我为自定义转换器一侧编写了一个system.text.jsonRead()自定义转换器。然而,另一方面Write(),我只想使用默认的写入功能来序列化对象,而不必手动进行对象的序列化。我开始于...
public override void Write(Utf8JsonWriter writer, Customer value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
JsonSerializer.Serialize(Customer)我本来希望我可以简单地使用方法中的标准Write()。就像是...
public override void Write(Utf8JsonWriter writer, Customer value, JsonSerializerOptions options)
{
return JsonSerializer.Serialize(value);
}
Run Code Online (Sandbox Code Playgroud)
然而,这种情况似乎正在回归null。我想我所做的只是嵌套相同的行为。
作为绝望的标志,我还尝试删除该Write()方法,希望标准功能能够填补该空白,但我收到以下构建错误消息...
CS0534 'CustomerJsonConverter' does not implement inherited abstract member
'JsonConverter<Customer>.Write(Utf8JsonWriter, Customer, JsonSerializerOptions)'
Run Code Online (Sandbox Code Playgroud)
CanReadNewtonsoft.Json 具有名为且CanWrite可以设置为 False 的属性。这些强制转换器分别在反序列化和序列化时使用默认转换器功能。
我希望 System.Text.Json 中有类似的东西?
使用@Guilherme的建议......它部分有效。但是,该方法给出了不完整的 Json 对象。
作为背景,当我反序列化原始源 Json 时,我必须处理原始 Json (我无法控制)的情况,它有一个可以是空""、对象{ "key": "value" …