public string Render( string title, EventBean theEvent) { var @event = (JsonEventObject)theEvent.Underlying; using var stream = new MemoryStream(); using var writer = new Utf8JsonWriter(stream); using var context = new JsonSerializationContext(writer); writer.WriteStartObject(); writer.WritePropertyName(title); try { @event.WriteTo(context); } catch (IOException e) { throw new EPException("Failed to write json: " + e.Message, e); } writer.WriteEndObject(); writer.Flush(); return(Encoding.UTF8.GetString(stream.ToArray())); }
public static void AssertJsonWrite( JToken expectedValue, EventBean eventBean) { var expectedMinimalJson = expectedValue.ToString(Formatting.None); var expectedPrettyJson = expectedValue.ToString(Formatting.Indented); var optionsMinimal = new JsonWriterOptions(); var optionsIndent = new JsonWriterOptions() { Indented = true }; var und = (JsonEventObject)eventBean.Underlying; Assert.AreEqual(expectedMinimalJson, und.ToString(optionsMinimal)); Assert.AreEqual(expectedPrettyJson, und.ToString(optionsIndent)); var stream = new MemoryStream(); var writer = new Utf8JsonWriter(stream, optionsMinimal); var context = new JsonSerializationContext(writer); und.WriteTo(context); Assert.AreEqual(expectedMinimalJson, Encoding.UTF8.GetString(stream.ToArray())); }
void IJsonAdapter <ClassWithAdapters> .Serialize(JsonSerializationContext <ClassWithAdapters> context, ClassWithAdapters value) { using (context.Writer.WriteObjectScope()) { context.Writer.WriteKey("Decorated"); context.ContinueVisitation(); } }
void IJsonAdapter <DirectoryInfo> .Serialize(JsonSerializationContext <DirectoryInfo> context, DirectoryInfo value) { if (null == value) { context.Writer.WriteNull(); } else { context.Writer.WriteValue(value.GetRelativePath()); } }
public void RealSerializerFailsWithNonRealTypes() { var serializer = new JsonSerializer(); var sw = new StringWriter(); var context = new JsonSerializationContext(serializer, new JsonWriter(sw)); var intSerializer = new JsonRealSerializer<int>(); try { intSerializer.Serialize(0, context); Assert.Fail("Did not throw the expected exception"); } catch (NotSupportedException) { } }
public string Render(EventBean theEvent) { var underlying = theEvent.Underlying; if (underlying is JsonEventObject jsonEventObject) { return(jsonEventObject.ToString(default(JsonWriterOptions))); } var eventType = (JsonEventType)theEvent.EventType; using var stream = new MemoryStream(); using var writer = new Utf8JsonWriter(stream); using var context = new JsonSerializationContext(writer); eventType.Serializer.Serialize(context, underlying); writer.Flush(); return(Encoding.UTF8.GetString(stream.ToArray())); }
public void Serialize(JsonSerializationContext <T[, ]> context, T[,] value) { if (null == value) { context.Writer.WriteNull(); return; } using (context.Writer.WriteArrayScope()) { for (var x = 0; x < value.GetLength(0); x++) { using (context.Writer.WriteArrayScope()) { for (var y = 0; y < value.GetLength(1); y++) { context.SerializeValue(value[x, y]); } } } } }
void IJsonAdapter <UnityEditor.GUID> .Serialize(JsonSerializationContext <UnityEditor.GUID> context, UnityEditor.GUID value) => context.Writer.WriteValue(value.ToString());
void IJsonAdapter <string> .Serialize(JsonSerializationContext <string> context, string value) => context.Writer.WriteValue(value);
void IJsonAdapter <char> .Serialize(JsonSerializationContext <char> context, char value) => context.Writer.WriteValue(value);
void IJsonAdapter <bool> .Serialize(JsonSerializationContext <bool> context, bool value) => context.Writer.WriteValueLiteral(value ? "true" : "false");
void IJsonAdapter <double> .Serialize(JsonSerializationContext <double> context, double value) => context.Writer.WriteValue(value);
public void Serialize(JsonSerializationContext <Cat> context, Cat value) { context.Writer.WriteValue("a cat"); }
public void Serialize(JsonSerializationContext <Foo> context, Foo value) { context.Writer.WriteValue(JsonSerialization.ToJson(value).Replace('"', '\"').Replace("\n", "").Replace(" ", "")); }
void IJsonAdapter <TimeSpan> .Serialize(JsonSerializationContext <TimeSpan> context, TimeSpan value) => context.Writer.WriteValue(value.ToString("c", CultureInfo.InvariantCulture));
void IJsonAdapter <Guid> .Serialize(JsonSerializationContext <Guid> context, Guid value) => context.Writer.WriteValue(value.ToString("N", CultureInfo.InvariantCulture));
void IJsonAdapter <UnityEditor.GlobalObjectId> .Serialize(JsonSerializationContext <UnityEditor.GlobalObjectId> context, UnityEditor.GlobalObjectId value) => context.Writer.WriteValue(value.ToString());
public void Serialize( JsonSerializationContext context, object value) { ProcSerialize.Invoke(context, value); }
void IJsonAdapter <ClassWithAdapters> .Serialize(JsonSerializationContext <ClassWithAdapters> context, ClassWithAdapters value) { context.Writer.WriteValue(-value.A); }
public void Serialize(JsonSerializationContext <DummyClass> context, DummyClass value) { }
void IJsonAdapter <DateTime> .Serialize(JsonSerializationContext <DateTime> context, DateTime value) => context.Writer.WriteValue(value.ToString("o", CultureInfo.InvariantCulture));
void IJsonAdapter <short> .Serialize(JsonSerializationContext <short> context, short value) => context.Writer.WriteValue(value);
void IJsonAdapter <Version> .Serialize(JsonSerializationContext <Version> context, Version value) => context.Writer.WriteValue(value.ToString());
void IJsonAdapter <byte> .Serialize(JsonSerializationContext <byte> context, byte value) => context.Writer.WriteValue(value);
void IJsonAdapter <uint> .Serialize(JsonSerializationContext <uint> context, uint value) => context.Writer.WriteValue(value);
void IJsonAdapter <float> .Serialize(JsonSerializationContext <float> context, float value) => context.Writer.WriteValue(value);
public void Serialize(JsonSerializationContext <TypeWithAdapters> context, TypeWithAdapters value) { throw new NotImplementedException(); }
public JsonSerializer(JsonSerializationContext context) { Context = context; }