.NetFrameworkの機能でJSONをパース

System.Runtime.Serialization.Jsonを使用する。

  • JSON to DataContractクラスはMSからコンバートツールが出ていない
  • JSON to DataContractクラス生成はWEBベースなら下記サイトでできる。
    痒い所に手が届かないのでここで作ったのを成型すると良いかも。
    http://jsontodatacontract.azurewebsites.net/
  • DataMemberがJSONに存在しない時はデシリアライズでnullになる

FileConfig.cs

 

Program.cs

参考:https://dev.classmethod.jp/etc/c-sharp-json/

JSONの命名規則

msのサンプルが参考になる。

参考:https://docs.microsoft.com/en-us/bingmaps/rest-services/json-data-contracts

DataContractJsonSerializerの挙動を変える

DataContractクラスでOnDeserializedMethod()等をオーバーライドする。JSONのある要素の値位しか取れないので大したことはできない。デシリアライズ時に値がパスであればそのパスをオープンして情報を取得するという事をやりたかったのだが…。

参考:https://docs.microsoft.com/en-us/dotnet/standard/serialization/custom-serialization