/// <summary> /// Serializes object /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="serializer"></param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var array = new JArray(); using (var tempWriter = array.CreateWriter()) base.WriteJson(tempWriter, value, serializer); var token = array.Single(); if (token.Type == JTokenType.String && value != null) { var enumType = value.GetType(); token = string.Join(", ", token.ToString().Split(',').Select(s => s.Trim()).Select(s => { var dateTime = DateTime.Parse(s); var unixTime = DateTimeToUnixTimeStamp(dateTime); return(unixTime.ToString(CultureInfo.InvariantCulture)); }).ToArray()); } token.WriteTo(writer); }
public void CreateWriter() { JArray a = new JArray( 5, new JArray(1), new JArray(1, 2), new JArray(1, 2, 3) ); JsonWriter writer = a.CreateWriter(); Assert.IsNotNull(writer); Assert.AreEqual(4, a.Count()); writer.WriteValue("String"); Assert.AreEqual(5, a.Count()); Assert.AreEqual("String", (string)a[4]); writer.WriteStartObject(); writer.WritePropertyName("Property"); writer.WriteValue("PropertyValue"); writer.WriteEnd(); Assert.AreEqual(6, a.Count()); Assert.IsTrue(JToken.DeepEquals(new JObject(new JProperty("Property", "PropertyValue")), a[5])); }