この種の操作については、TweetSharp とそれがどのように処理されるかを常に確認しています。
たとえば、TweetSharp は TwitterGeoConverter.cs を使用して、TwitterGeoLocation.GeoCoordinates 型を JSON との間でシリアル化/逆シリアル化します
。 /TwitterGeoConverter.cs
このコンバーターの主要なメソッドは次のとおりです。
- CanConvert - このコンバーターをこのメンバーで使用する必要があります
- WriteJson - オブジェクトを文字列出力に処理します
- ReadJson - 文字列からオブジェクトへの解析を処理します
コンバーター自体は、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()
}
})
( https://github.com/danielcrenna/tweetsharp/blob/master/src/net40/TweetSharp.Next/Serialization/SerializerBase.csから)
または、属性を使用してコンバーターを登録することもできます - https://github.com/geersch/JsonNetDateTimeConverterを参照してください
または...ケースが非常に単純で、ソースコードを所有している場合-シリアル化中にいくつかのプロパティを単に無視したい場合は、[JsonIgnore]
スキップするプロパティに使用できる属性があります。