private static void WriteRssToJson(Channel channel, JsonWriter writer) { writer.WriteStartObject(); writer.WriteMember("title"); writer.WriteString(channel.title); writer.WriteMember("link"); writer.WriteString(channel.link); writer.WriteMember("items"); writer.WriteStartArray(); foreach (Item item in channel.item) WriteRssToJson(item, writer); writer.WriteEndArray(); writer.WriteEndObject(); }
/// <summary> /// The export. /// </summary> /// <param name="context"> /// The context. /// </param> /// <param name="value"> /// The value. /// </param> /// <param name="writer"> /// The writer. /// </param> public void Export(ExportContext context, object value, JsonWriter writer) { writer.WriteStartObject(); writer.WriteMember("Critter"); var critter = (Critter)value; writer.WriteStartObject(); if (exportType > ExportType.Expanded) { writer.WriteMember("Age"); writer.WriteNumber(critter.Age); writer.WriteMember("N"); writer.WriteNumber(critter.N); } writer.WriteMember("Rank"); writer.WriteNumber(critter.Rank); writer.WriteMember("Fitness"); writer.WriteStartObject(); int i = 0; foreach (var n in Enum.GetNames(typeof(FitnessParameter))) { writer.WriteMember(n); writer.WriteNumber(critter.Fitness[i++]); } writer.WriteEndObject(); // writer.WriteMember("Fitness"); // context.Export(critter.Fitness,writer); if (exportType > ExportType.Summary) { writer.WriteMember("Route"); writer.WriteStartArray(); foreach (var node in critter.Route) { writer.WriteNumber(node.Node.Id); } writer.WriteEndArray(); } writer.WriteMember("Legs"); writer.WriteStartArray(); foreach (var leg in critter.Fitness.JourneyLegs) { writer.WriteStartObject(); if (exportType > ExportType.Summary) { writer.WriteMember("Start"); writer.WriteNumber(leg.Origin.Id); writer.WriteMember("End"); writer.WriteNumber(leg.Destination.Id); writer.WriteMember("Route"); writer.WriteString(leg.RouteId1); } if (exportType > ExportType.Simple) { writer.WriteMember("StartLocation"); writer.WriteStartObject(); writer.WriteMember("Lat"); writer.WriteNumber(leg.Origin.Latitude); writer.WriteMember("Long"); writer.WriteNumber(leg.Origin.Longitude); writer.WriteEndObject(); writer.WriteMember("EndLocation"); writer.WriteStartObject(); writer.WriteMember("Lat"); writer.WriteNumber(leg.Destination.Latitude); writer.WriteMember("Long"); writer.WriteNumber(leg.Destination.Longitude); writer.WriteEndObject(); } writer.WriteMember("Mode"); writer.WriteString(leg.TransportMode.ToString()); writer.WriteMember("TotalTime"); context.Export(leg.TotalTime, writer); writer.WriteMember("DepartTime"); context.Export(leg.DepartureTime, writer); writer.WriteMember("OriginName"); writer.WriteString(leg.Origin.StopSpecName); writer.WriteEndObject(); } writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndObject(); }
protected virtual void Export(ExportContext context, JsonWriter writer) { if (context == null) throw new ArgumentNullException("context"); if (writer == null) throw new ArgumentNullException("writer"); writer.WriteStartArray(); foreach (object value in this) context.Export(value, writer); writer.WriteEndArray(); }
public void DepthIncreasesInsideArray() { _writer.WriteStartArray(); Assert.AreEqual(1, _writer.Depth); _writer.WriteStartArray(); Assert.AreEqual(2, _writer.Depth); _writer.WriteEndArray(); Assert.AreEqual(1, _writer.Depth); _writer.WriteEndArray(); Assert.AreEqual(0, _writer.Depth); }