Dav*_*fer 3 c# serialization json.net
我正在使用Newtonsoft的JSON.NET库来序列化一些对象.特别是,我想将NetTopologySuite Point类(或GeoAPI IPoint接口)存储为我的对象的属性.
我只想在生成的JSON中存储latitude和longitude属性.相比之下,IPOINT有X,Y,Z,和其他几个属性.
我可以以某种方式注入我自己的逻辑,如何序列化/反序列化这种特定类型到/从JSON?
谢谢!
对于这种操作,我总是看看TweetSharp以及它如何处理它.
例如,TweetSharp使用TwitterGeoConverter.cs到连载从JSON/deserialise的TwitterGeoLocation.GeoCoordinates类型/: https://github.com/danielcrenna/tweetsharp/blob/master/src/net40/TweetSharp.Next/Serialization/Converters /TwitterGeoConverter.cs
这个转换器的关键方法是:
转换器本身使用JsonSerializerSettings在JSON.Net注册 - 例如:
new JsonSerializerSettings
{
MissingMemberHandling = MissingMemberHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Include,
ContractResolver = new JsonConventionResolver(),
Converters = new List<JsonConverter>
{
new TwitterDateTimeConverter(),
new TwitterWonkyBooleanConverter(),
new TwitterGeoConverter()
}
})
Run Code Online (Sandbox Code Playgroud)
或者,您也可以使用属性注册转换器 - 请参阅http://cgeers.com/2011/09/25/writing-a-custom-json-net-datetime-converter/
或者......如果案例非常简单并且您拥有源代码 - 那么如果您只是想在序列化期间忽略某些属性,那么[JsonIgnore]您可以跳过要跳过的属性的属性.
| 归档时间: |
|
| 查看次数: |
1871 次 |
| 最近记录: |