在列表上使用自定义JSON转换器

时间:2019-05-24 11:41:43

标签: c# json json.net

让我们说我有一些数据类

class MyData {
    public string SomeValue;
}

为此,我有一个JsonConverter

class MyDataConverter : JsonConverter<MyData> {
    public override void WriteJson(JsonWriter writer, MyData value, 
        JsonSerializer serializer)
    {
        writer.WriteValue(value.SomeValue);
    }

    public override MyData ReadJson(JsonReader reader, Type objectType,
        MyData existingValue, bool hasExistingValue, JsonSerializer serializer) 
    {
        var readerValue = (string) reader.Value;
        return new MyData {SomeValue = readerValue};
    }
}

现在,我可以在包含MyData实例的类上使用此转换器。但是,我找不到使用此转换器来转换List<MyData>实例的方法,例如

class ClassIWantToSerialize
{
    public List<MyData> SomeList;
}

注释[JsonConverter(typeof(MyDataConverter))]无效(不足为奇)。

最简单的方法是什么?

0 个答案:

没有答案