【发布时间】:2016-07-19 15:50:33
【问题描述】:
我开始使用 Json.net 来解析带有日期值的 Json 字符串。约会时一切顺利。到目前为止,即使使用 DateTime.Parse 方法,我也无法将 JValue 转换为 .NET DateTime,因为 Json.NET 似乎将日期解析为一种看起来像这样的不寻常格式
"Wed Jul 20 16:00:00 CEST 2016"
我设法使用正则表达式重新格式化和解析日期,但为了将来的使用,我想学习正确使用 Json.net 而不是重新发明轮子。
JSON字符串如下
{
"totalCount": 5,
"avis": [{
"idDossier": 422271,
"typeDocDCE": 1,
"dcevisible": 0,
"organisme": "OPAC du Rhône",
"idOrganisme": 5687,
"reference": "16S0012",
"idTypeProcedure": 68,
"typeProcedure": "Procédure adaptée",
"idTypeMarche": 1,
"typeMarche": "Travaux",
"libelle": "CHAMBOST ALLIERES - Les Cités - Construction de 16 logements individuels et intermédiaires",
"dateRemiseOffre": "20/07/2016 00:00",
"dateRemiseCandidature": "",
"datePublication": "23/06/2016 17:48",
"dateLimite": "20/07/2016 16:00",
"idFichierRC": 0,
"rectificatifs": true,
"questions": true,
"mps": false
}, {
"idDossier": 422402,
"typeDocDCE": 6,
"dcevisible": 0,
"organisme": "OPAC du Rhône",
"idOrganisme": 5687,
"reference": "16S0010",
"idTypeProcedure": 2,
"typeProcedure": "Appel d'offres restreint",
"idTypeMarche": 2,
"typeMarche": "Services",
"libelle": "Maintenance des installations de chauffage et ECS avec intéressement et prestations de réparation sur le patrimoine de l’Opac du Rhône - Lot n°3 : chaufferies et installations de chauffage collectif et électriques des agences de Thizy et L’Arbresle",
"dateRemiseOffre": "",
"dateRemiseCandidature": "25/07/2016 00:00",
"datePublication": "27/06/2016 11:43",
"dateLimite": "25/07/2016 16:00",
"idFichierRC": 0,
"rectificatifs": false,
"questions": false,
"mps": false
}]
}
这是我的 C# 代码
string JsonString = new WebClient().DownloadString(URL);
JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Local
};
dynamic elements = JsonConvert.DeserializeObject(JsonString, microsoftDateFormatSettings);
for (int i = 0; i < int.Parse(elements.totalCount.ToString()) ; i++)
{
idDossier = elements.avis[i].idDossier;
refs = elements.avis[i].
PublicationDate = elements.avis[i].datePublication;
Deadline = elements.avis[i].dateLimite;
我做错了什么?
提前致谢
【问题讨论】: