/// <summary> /// GetTimeSeriesDataList has to do some custom manipulation with the returned representation /// </summary> /// <param name="serializer"></param> /// <param name="timeSeriesDataJson"></param> /// <returns></returns> internal static HeartActivitiesIntraday GetHeartRateIntraday(this JsonDotNetSerializer serializer, DateTime date, string heartRateIntradayJson) { if (string.IsNullOrWhiteSpace(heartRateIntradayJson)) { throw new ArgumentNullException("heartRateIntradayJson", "heartRateIntradayJson can not be empty, null or whitespace."); } var activitiesHeartIntraday = JToken.Parse(heartRateIntradayJson)["activities-heart-intraday"]; var dataset = activitiesHeartIntraday["dataset"]; var result = new HeartActivitiesIntraday { Dataset = (from item in dataset select new DatasetInterval { Time = DateTime.Parse(date.ToString("yyyy-MM-dd") + " " + item["time"].ToString()), //here, maybe pass in the date so we have a full object of date and time Value = int.Parse(item["value"].ToString()) }).ToList(), DatasetInterval = Convert.ToInt32(activitiesHeartIntraday["datasetInterval"]), DatasetType = activitiesHeartIntraday["datasetType"].ToString() }; return result; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject jsonObject = JObject.Load(reader); var properties = jsonObject.Properties().ToList(); HeartActivitiesIntraday result = new HeartActivitiesIntraday(); result.DatasetInterval = Convert.ToInt32(jsonObject["DatasetInterval"]); result.DatasetType = jsonObject["DatasetType"].ToString(); result.Dataset = new List<DatasetInterval>(); foreach(JToken item in jsonObject["Dataset"].Children()) { result.Dataset.Add(new DatasetInterval() { Time = DateTime.Parse(item["Time"].ToString()), Value = Convert.ToInt32(item["Value"]) }); }; return result; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject jsonObject = JObject.Load(reader); var properties = jsonObject.Properties().ToList(); HeartActivitiesIntraday result = new HeartActivitiesIntraday(); result.DatasetInterval = Convert.ToInt32(jsonObject["DatasetInterval"]); result.DatasetType = jsonObject["DatasetType"].ToString(); result.Dataset = new List <DatasetInterval>(); foreach (JToken item in jsonObject["Dataset"].Children()) { result.Dataset.Add(new DatasetInterval() { Time = DateTime.Parse(item["Time"].ToString()), Value = Convert.ToInt32(item["Value"]) }); } ; return(result); }