在JsonConverter中,请正常编写json

hen*_*lle 2 json.net

我正在编写一个自定义的JsonConverter,但只是真的想要改变读取逻辑.写逻辑应该正常执行.我尝试任何方式,我得到堆栈溢出,因为Json.NET直接回到转换器.有没有办法指定我不想自定义编写器,或者我想延迟回到正常的Json.NET逻辑?

hen*_*lle 9

事实证明,您可以覆盖JsonConverter上的CanWrite属性,这将阻止Json.NET调用转换器.

public class MyConverter: JsonConverter
{
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        throw new NotImplementedException(); //This will never be called since CanWrite is false
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        //Do your thing
        return new object();
    }

    public override bool CanWrite { get { return false; } }

    public override bool CanConvert(Type objectType)
    {
        //Do your thing
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)