如果我使用JsonConvert.SerializeObject序列化对象,指定自定义合约解析器的方法是:
var serializerSettings = new JsonSerializerSettings { ContractResolver = MyContractResolver.Instance };
var serializedString = JsonConvert.SerializeObject( myObject, Formatting.None, serializerSettings )
但是,我们的应用程序的一部分使用此方法序列化:
var serializedString = JObject.FromObject(myObject).ToString();
一个方法调用FromObject来创建一个JObject,然后将它传递给一个需要JObject的接口,然后JObject调用ToString方法。鉴于我必须支持该接口,我需要传递一个JObject,而不是一个字符串。 Json.Net中还有另一个API:
public static JObject FromObject(
Object o,
JsonSerializer jsonSerializer
)
我是否可以在此调用中使用默认的JsonSerializer但是添加到我的自定义合约解析程序中?
答案 0 :(得分:3)
您可以使用
JsonSerializer.CreateDefault
JsonConvert.DefaultSettings
将使用默认设置(JsonSerializer.Create(serializerSettings)
)创建序列化程序,然后将您提供的设置合并到其中。
如果您不需要这些默认设置,请使用
{{1}}
这将只使用您提供的设置创建序列化程序(不与默认值合并)。