我有一本字典,它使用类作为键和值。对于这些类,我创建了 JsonConverters 以特定方式对它们进行序列化/反序列化。为了正确序列化字典,我使用了在https://newbedev.com/how-can-i-serialize-deserialize-a-dictionary-with-custom-keys-using-json-net找到的以下 JsonConverter 。
public class CustomDictionaryConverter<TKey, TValue> : JsonConverter
{
public override bool CanConvert(Type objectType) => objectType == typeof(Dictionary<TKey, TValue>);
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
=> serializer.Serialize(writer, ((Dictionary<TKey, TValue>)value).ToList());
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
=> serializer.Deserialize<KeyValuePair<TKey, TValue>[]>(reader).ToDictionary(kv => kv.Key, kv => kv.Value);
}
这确实有效,但序列化的字典条目采用这种形式
{“键”:“键类”,值”:“值类”}
其中 KeyClass 和 ValueClass 是键和值类的序列化输出。我想要的是让每个条目看起来像这样
“键类”:“值类”
我该怎么做呢?