Newtonsoft.JsonはIsoDateTimeConverterを利用して日付タイプを処理する


Newtonsoft.Json.dllは、逆シーケンス化されたオブジェクトとJson文字列をシーケンス化するときに便利です.
ただし、オブジェクトに日付タイプ属性がある場合は、シーケンス化後のフォーマットは
{"UserId":1,"UserName":"   ","CreateDate":"\/Date(353521211984)\/"}
日付はDate(35353521211984)に変換されます.Dateは日付を表し、353521211984はミリ秒です.
上記のフォーマットは非常に不便に見えるので、普通の日付フォーマットに変換する必要があります.例えば、2013-01-15 12:13:14
Newtonsoft.Jsonには日付を変換できるクラスがあります.次は変換方法です.
///            JSON   
public static string SerializeObject(T obj)
{
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
//           ,       ,   ISO8601  
timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
string serialStr = JsonConvert.SerializeObject(obj, Formatting.Indented, timeConverter);
return serialStr;
}
IsoDateTimeConverter変換による結果
{"UserId":1,"UserName":"   ","CreateDate":"2013-01-15 12:13:14"}
上はオブジェクトをシーケンス化し、次はオブジェクトセットをシーケンス化します.
///              JSON   
public static string SerializeObject(List list)
{
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
//           ,       ,   ISO8601  
timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
string serialStr = JsonConvert.SerializeObject(list, Formatting.Indented, timeConverter);
return serialStr;
}
注意:timeConverter.DateTimeFormatはニュートンだけだJson.dll(3.5)バージョンのみ、2.0はありません
使用するときはewtonsoftに注意してください.Json.dllのバージョンは現在のプログラムと同じです.Netバージョンが同じかどうか、そうでないと次のエラーが表示されます.
ファイルまたはプログラムセット「Newtonsoft.Json,Version=3.5.00,Culture=neutral,PublicKeyToken=b 9 a 188 c 8922137 c 6」またはその依存項目をロードできませんでした.見つかったプログラムセットリスト定義は、プログラムセット参照と一致しません.(異常はHRESULT:0 x 80131040より)
Newtonsoft.Json.dllダウンロードアドレス:
http://json.codeplex.com/releases/view/97986
引用資料:
http://www.sweiku.com/newtonsoft-json-isodatetimeconverter.html