使用Json.Net的JObject.FromObject序列化时能否自定义ContractResolver?
使用JObject.FromObject时应用自定义ContractResolver的方法
没问题!JObject.FromObject确实能用上你的自定义ContractResolver,只是得换个调用方式,不像JsonConvert.SerializeObject那样直接传JsonSerializerSettings就行。
具体操作分两步:
首先创建一个配置好自定义解析器的
JsonSerializer实例:var serializer = JsonSerializer.Create(new JsonSerializerSettings { ContractResolver = MyContractResolver.Instance });然后调用
JObject.FromObject的重载版本,把这个序列化器传进去:var jObject = JObject.FromObject(myObject, serializer); var serializedString = jObject.ToString();
补充说明
默认的JObject.FromObject(myObject)无参重载会使用框架默认的JsonSerializer实例,不会加载你的自定义ContractResolver。只有显式传入我们自己配置好的序列化器,才能让自定义规则生效。
内容的提问来源于stack exchange,提问作者Paul Chernoch
相关产品推荐
相关产品推荐

