编辑2:
我创建了一个Windows Phone 8应用程序并包含了Microsoft.WindowsAzure.MobileServices;使用与原始问题中下面的违规代码相同的类,我创建了一个json.net DID成功反序列化的记录。
[{"id":1,"DataLoggerName":"Ben Walkin","Time":"2013-02-19T18:39:51.733Z",
[{"id":1,"DataLoggerName":"JHANetDuino","Time":"2013-02-19T16:46:55.205K",
重新阅读ISO 8601 Wikipedia article我现在将'K'解释为罪魁祸首。只有'Z'祖鲁时间是可以接受的。偏移量以数字表示。 “ ISO 8601中的时区表示为本地时间(未指定位置),UTC或UTC的偏移量。”
我将尝试为客户发布带有不受支持的.dll的'K'.netmf的解决方案,以允许在Azure中创建表数据。
编辑1:
我在我的解决方案中包含了json.net以逐步执行错误并找到了:
Newtonsoft.Json.JsonReaderException未被用户代码
处理 HResult = -2146233088消息=无法将字符串转换为DateTime: 2013-02-18T06:35:25.604K。路径'[0] .Time',第1行,第74位。
原始问题
我有一个Windows应用程序,可以使用我用.php构建的Json数据。我最近一直在增强它与Windows Azure一起工作。我'拥有'代码并且可以纠正它对其他人有用并遵循'标准'到那个目的我正试图标准化我的Json,特别是DateTime(让我感到困惑)
这是有效的ISO 8601日期吗? “时代”: “2013-02-18T06:35:25.604K” 这不是有效的ISO 8601日期吗? “时间”:“2013-02-11 16:25:54”
有效日期在数据和时间之间有'T',无效有''?
旧工作.php代码中的数据
[{"Time":"2013-02-11 16:25:54","Temperature0":"74.38478","Temperature1":"57.142857142857146"},{"Time":"2013-02-11 16:26:54","Temperature0":"74.38478","Temperature1":"57.753357753357754"},
来自新Azure崩溃代码的数据
[{"id":1,"DataLoggerName":"JHA NetDuino","Time":"2013-02-18T06:35:25.604K","Temperature0":82.78388278388276,"Temperature1":0},
这是旧的工作代码,读取我认为无效的json ISO 8601日期数据,因为日期和时间之间没有'T'。
var strJson = await GetJsonHistoricalTemperatureData.GetHistoricalTemperatureData();
return await JsonConvert.DeserializeObjectAsync<ObservableCollection<HistoricalTemperatureData>>(strJson);
public class HistoricalTemperatureData
{
public int Id { get; set; }
public string DataLoggerName { get; set; }
public DateTime Time { get; set; }
public double Temperature0 { get; set; }
public double Temperature1 { get; set; }
}
如果我使用相同的代码读取Azure数据,我在json.net上会收到异常错误
A first chance exception of type 'Newtonsoft.Json.JsonReaderException' occurred in mscorlib.dll
从我读过的所有内容来看,应用程序似乎不应该使用原始日期数据,而应该使用新的Azure数据。根据ISO 8601格式,Azure数据似乎更正确。我想调整我的旧.php代码来生成这个(轻松完成)和修复 windows存储应用程序以正确反序列化Json。
答案 0 :(得分:0)
重读ISO 8601 Wikipedia文章,我现在将'K'解释为罪魁祸首。只有'Z'祖鲁时间是可以接受的。偏移量以数字表示。 “ISO 8601中的时区表示为本地时间(未指定位置),UTC或UTC的偏移量。”