public static string Parse(List <XmlReader> xml, string fileName, bool writeToFile = false) { JsonMoves json = new JsonMoves(); json.day = new JsonMoves.Day[xml.Count]; for (int i = 0; i < xml.Count; i++) { // Date json.day[i] = new JsonMoves.Day(xml[i].date); // Summary ParseSummary(i, json, xml); // Segments ParseSegments(i, json, xml); } string output = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); output = CleanUpJson(output); if (writeToFile) { WriteToFile(output, fileName); } return(output); }
// Summary parsing static void ParseSegments(int i, JsonMoves json, List <XmlReader> xml) { List <JsonMoves.Day.Segment> segments = new List <JsonMoves.Day.Segment>(); foreach (var item in xml[i].timelineItems) { if (item.type == XmlTimeline.TimelineItemType.place) { segments.Add(SegmentPlace(item.place)); } else { segments.Add(SegmentMove(item.activity)); } } json.day[i].segments = segments.ToArray(); }
static void ParseSummary(int i, JsonMoves json, List <XmlReader> xml) { List <ActivitySummary> summaries = new List <ActivitySummary>(); for (int o = 0; o < 10; o++) { if (xml[i].summary[o].duration > 0) { summaries.Add(xml[i].summary[o]); } } List <JsonMoves.Day.Summary> convertedSummaries = new List <JsonMoves.Day.Summary>(); foreach (var item in summaries) { convertedSummaries.Add(item.ToMoves()); } json.day[i].summary = convertedSummaries.ToArray(); }