我了解创建外部JsonConverter类的价值,但是在许多情况下,我发现这样做不必要地麻烦。
是否有一种通用的方法来告诉JSon.NET, if 类具有string ToJson()
方法,该方法用于序列化,而 if 该类具有{ {1}}方法用于反序列化吗?
或者/并且对于不可变类型 ,如果一个类具有void FromJson(string json)
,则使用该类型吗?
答案 0 :(得分:0)
我做到了:
namespace System {
public static class ExtensionsMethods {
public static string ToJson(this object obj, JsonSerializerSettings settings=null) =>
settings is null ? JsonConvert.SerializeObject(obj) : JsonConvert.SerializeObject(obj, settings);
public static T FromJson<T>(this object obj, string json, JsonSerializerSettings settings = null) =>
JsonConvert.DeserializeObject<T>(json, settings);
}
}
我现在可以做:
var o = new MyClass();
var jsonStr = o.ToJson();
var myClass = new object().FromJson<MyClass>(jsonStr);