C#Json.NET ToJson()从Json()

时间:2018-07-10 01:47:55

标签: c# json.net

我了解创建外部JsonConverter类的价值,但是在许多情况下,我发现这样做不必要地麻烦。

是否有一种通用的方法来告诉JSon.NET, if 类具有string ToJson()方法,该方法用于序列化,而 if 该类具有{ {1}}方法用于反序列化吗?

或者/并且对于不可变类型 ,如果一个类具有void FromJson(string json),则使用该类型吗?

1 个答案:

答案 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);