public void WritesEmptyArray() { var sw = new StringWriter(); var writer = new JsonWriter(sw); writer.WriteStartArray(); writer.WriteEnd(); Assert.AreEqual("[]", sw.ToString()); }
public void WritesEmptyObject() { var sw = new StringWriter(); var writer = new JsonWriter(sw); writer.WriteStartObject(); writer.WriteEnd(); Assert.AreEqual("{}", sw.ToString()); }
public void WritesSinglePropertyObject() { var sw = new StringWriter(); var writer = new JsonWriter(sw); writer.WriteStartObject(); writer.WriteName("A").WriteValue(1); writer.WriteEnd(); Assert.AreEqual("{\"A\": 1}", sw.ToString()); }
public void WritesSinglePropertyArray() { var sw = new StringWriter(); var writer = new JsonWriter(sw); writer.WriteStartArray(); writer.WriteValue(1); writer.WriteEnd(); Assert.AreEqual("[1]", sw.ToString()); }
public void EndOutsideObject() { var sw = new StringWriter(); var writer = new JsonWriter(sw); try { writer.WriteEnd(); Assert.Fail("Did not throw the expected exception"); } catch (NotSupportedException ex) { Assert.AreEqual("Need to be inside an Array, Object or Constructor to End", ex.Message); } }
private static void WritePathField(JsonWriter jsonWriter, SuggestContextPathFieldInfo pathField) { jsonWriter.WritePropertyName(pathField.ESFieldName); jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue(ElasticSearchClient.GetElasticSearchTypeFromFieldType(FieldType.text)); /*jsonWriter.WritePropertyName("index"); * jsonWriter.WriteValue(false); * jsonWriter.WritePropertyName("store"); * jsonWriter.WriteValue(false);*/ jsonWriter.WritePropertyName("include_in_all"); jsonWriter.WriteValue(false); jsonWriter.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var imgData = value as ImageField.ImageFieldData; if (imgData == null) { throw new ODataException(SNSR.GetString(SNSR.Exceptions.OData.CannotConvertToJSON_2, typeof(ImageField.ImageFieldData).FullName, value.GetType().FullName), ODataExceptionCode.CannotConvertToJSON); } writer.WriteStartObject(); var url = imgData.Field == null ? "#" : ((ImageField)imgData.Field).ImageUrl; writer.WritePropertyName("_deferred"); writer.WriteValue(url); writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var texture = (Texture)value; writer.WriteStartObject(); writer.WritePropertyName("uuid"); writer.WriteValue(texture.UUID); writer.WritePropertyName("image"); writer.WriteValue(texture.ImageId); writer.WritePropertyName("wrap"); writer.WriteStartArray(); writer.WriteValue(texture.WrapS); writer.WriteValue(texture.WrapT); writer.WriteEnd(); writer.WritePropertyName("repeat"); writer.WriteStartArray(); writer.WriteValue(texture.Repeat.Item1); writer.WriteValue(texture.Repeat.Item2); writer.WriteEnd(); writer.WriteEndObject(); }
/// <summary>Writes the JSON representation of the object.</summary> /// <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter" /> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, GorgonKeyGorgonColor value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } writer.WriteStartObject(); writer.WritePropertyName("time"); writer.WriteValue(value.Time); writer.WritePropertyName("argb"); writer.WriteValue(value.Value.ToARGB()); writer.WriteEnd(); }
/// <summary> /// output needs to look like this /// "restrictions":{ /// "issuer_did":"YWpmwLpTjxxieBPUxztnXo" /// } /// </summary> /// <param name="writer">Writer.</param> /// <param name="value">Value.</param> /// <param name="serializer">Serializer.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var list = value as IndyDotNet.AnonCreds.RequestRestrictions; writer.WriteStartObject(); writer.WritePropertyName("restrictions"); writer.WriteStartObject(); foreach (KeyValuePair <string, string> item in list) { writer.WritePropertyName(item.Key); writer.WriteValue(item.Value); } writer.WriteEndObject(); writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); writer.WritePropertyName("$type"); writer.WriteValue(typeof(IDictionary <string, object>).ToString()); writer.WritePropertyName("$values"); writer.WriteStartObject(); foreach (KeyValuePair <string, object> entry in (value as IDictionary <string, object>)) { writer.WritePropertyName(entry.Key); writer.WriteValue(entry.Value); } writer.WriteEnd(); writer.WriteEndObject(); }
private void CreateJsonTree(JsonWriter writer, List <Tracer.Tracer.TracerLog> curTracerLog) { foreach (Tracer.Tracer.TracerLog trace in curTracerLog) { writer.WriteStartObject(); writer.WritePropertyName("name"); writer.WriteValue(trace.Info.MethodName); writer.WritePropertyName("class"); writer.WriteValue(trace.Info.ClassName); writer.WritePropertyName("time"); writer.WriteValue(trace.Info.DeltaTime.ToString(CultureInfo.InvariantCulture)); writer.WritePropertyName("methods"); writer.WriteStartArray(); if (trace.TraceChilds.Count <= 0) { writer.WriteEnd(); writer.WriteEndObject(); continue; } CreateJsonTree(writer, trace.TraceChilds); writer.WriteEnd(); writer.WriteEndObject(); } }
public void Emit(JsonWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("Name"); writer.WriteValue(this.Name); writer.WritePropertyName("ManagedFrames"); writer.WriteStartArray(); foreach (var frame in ManagedFrames) { frame.Emit(writer); } writer.WriteEnd(); writer.WritePropertyName("NativeFrames"); writer.WriteStartArray(); foreach (var frame in NativeFrames) { frame.Emit(writer); } writer.WriteEnd(); writer.WriteEndObject(); }
// Token: 0x060001CC RID: 460 RVA: 0x0001580C File Offset: 0x00013A0C private void WritePropertyValue(JsonWriter writer, object propertyValue) { object[] array; if (propertyValue.GetType().IsArray&& (array = (propertyValue as object[])) != null) { writer.WriteStartArray(); foreach (object value in array) { this.JsonSerializer.Serialize(writer, value); } writer.WriteEnd(); return; } this.JsonSerializer.Serialize(writer, propertyValue); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); Shape shape = value as Shape; foreach (DictionaryEntry property in shape.Properties) { string key = property.Key.ToString(); if (key == "Parent" || key == "Items" || key == "Source") { continue; } if (property.Value is ExpandoObject) { Utility.WriteProperty(key, property.Value, writer, serializer); } else if (property.Value is IEnumerable) { Utility.WriteArray(key, property.Value as IEnumerable, writer, serializer); } else { Utility.WriteProperty(key, property.Value, writer, serializer); } } // Attributes Utility.WriteArray("Attributes", shape.Attributes, writer, serializer); // Items Utility.WriteArray("Items", shape.Items, writer, serializer); // Position Utility.WriteProperty("Position", shape.Position, writer, serializer); // Id Utility.WriteProperty("Id", shape.Id, writer, serializer); // Classes Utility.WriteArray("Classes", shape.Classes, writer, serializer); // Metadata Utility.WriteProperty("Metadata", shape.Metadata, writer, serializer); writer.WriteEnd(); }
private static void WriteJqGridResponse(JsonWriter writer, JsonSerializer serializer, JqGridResponse response) { JqGridJsonReader jsonReader = (response.Reader == null) ? JqGridResponse.JsonReader : response.Reader; writer.WriteStartObject(); if (!response.IsSubgridResponse) { WritePagingProperties(writer, jsonReader, response); WrtieUserData(writer, serializer, jsonReader, response); } WriteJqGridRecords(writer, serializer, response.IsSubgridResponse, jsonReader, response.Records); writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { RuleCondition rc = (RuleCondition)value; // writer.wri writer.WritePropertyName("address"); writer.WriteValue(rc.address); writer.WritePropertyName("operator"); writer.WriteValue(rc.@operator); if (rc.value != null) { writer.WritePropertyName("value"); writer.WriteValue(rc.value); } writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); ContentTypePartDefinition contentTypePartDefinition = value as ContentTypePartDefinition; if (contentTypePartDefinition.ContentTypeDefinition != null) { // PartDefinition Utility.WriteProperty("PartDefinition", contentTypePartDefinition.PartDefinition, writer, serializer); // Settings Utility.WriteProperty("Settings", contentTypePartDefinition.Settings, writer, serializer); } writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var geoPoint = value as GeoPoint; if (geoPoint == null) { return; } writer.WriteStartObject(); writer.WritePropertyName(JsonNames.Lat); writer.WriteValue(geoPoint.Lat); writer.WritePropertyName(JsonNames.Lon); writer.WriteValue(geoPoint.Lon); writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { Schedule oldsch = (Schedule)value; List <PropertyInfo> prop = oldsch.GetType().GetListHueProperties(); writer.WriteStartObject(); foreach (PropertyInfo p in prop) { if (p.GetValue(oldsch) == null) { continue; } writer.WritePropertyName(p.Name); if (p.Name == "command") { writer.WriteStartObject(); List <PropertyInfo> pi = oldsch.command.GetType().GetListHueProperties(); foreach (PropertyInfo pc in pi) { if (pc.GetValue(oldsch.command) == null) { continue; } writer.WritePropertyName(pc.Name); if (pc.Name == "address") { writer.WriteValue(oldsch.command.address.ToString()); } else if (pc.Name == "body") { writer.WriteRawValue(oldsch.command.body); } else { writer.WriteValue(pc.GetValue(oldsch.command)); } } writer.WriteEndObject(); } else { writer.WriteValue(p.GetValue(oldsch)); } } writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var r = value as IndyDotNet.AnonCreds.R; writer.WriteStartObject(); writer.WritePropertyName("master_secret"); serializer.Serialize(writer, r.MasterSecret); foreach (KeyValuePair <string, string> item in r.Attributes) { writer.WritePropertyName(item.Key); serializer.Serialize(writer, item.Value); } writer.WriteEnd(); }
protected virtual void WriteSetOnceJson(JsonWriter writer, PersonSetOnceEvent personEvent) { // https://mixpanel.com/docs/people-analytics/people-http-specification-insert-data //{ // "$set_once": { // "initial referrer": "Dr. So and So" // }, // "$token": "36ada5b10da39a1347559321baf13063", // "$distinct_id": "13793" //} writer.WriteStartObject(); writer.WritePropertyName("$set_once"); writer.WriteRawValue(personEvent.Properties.ToPropertyArrayJson(Formatting.None) ?? "{}"); this.WriteCommonPersonValues(writer, personEvent); writer.WriteEnd(); }
public static void WritePropertyObject <T>(string propertyName, T propertyObject, System.Action <T> serializeObject, JsonWriter writer, JsonSerializer serializer) where T : IBaseEntity { writer.WritePropertyName(propertyName); if (propertyObject == null) { writer.WriteNull(); } else { writer.WriteStartObject(); WritePropertyValue("$id", GetReferenceInternal(propertyObject), writer, serializer); WritePropertyType(writer, serializer, propertyObject); serializeObject.Invoke(propertyObject); writer.WriteEnd(); } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); ProjectionPart contentPart = value as ProjectionPart; var record = contentPart.Record; // dynamic object corresponding to TicketPartRecord dynamic dynamicRecord = new JObject(); dynamicRecord.ItemsPerPage = record.ItemsPerPage; dynamicRecord.MaxItems = record.MaxItems; dynamicRecord.PagerSuffix = record.PagerSuffix; dynamicRecord.Skip = record.Skip; dynamicRecord.DisplayPager = record.DisplayPager; dynamicRecord.DisplayPager = record.DisplayPager; // layout if (record.LayoutRecord != null) { var layoutRecord = record.LayoutRecord; dynamic layout = new JObject(); layout.Id = layoutRecord.Id; layout.DisplayType = layoutRecord.DisplayType; layout.Category = layoutRecord.Category; layout.Type = layoutRecord.Type; layout.State = layoutRecord.State; dynamicRecord.LayoutRecord = layout; } // query if (record.QueryPartRecord != null) { var queryRecord = record.QueryPartRecord; dynamic query = new JObject(); query.Id = queryRecord.Id; dynamicRecord.QueryPartRecord = query; } // Id Utility.WriteProperty("Id", contentPart.Id, writer, serializer); Utility.WriteProperty("Record", dynamicRecord, writer, serializer); this.WriteCommonFields(writer, contentPart, serializer); writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); SuiteCRMProjectPart contentPart = value as SuiteCRMProjectPart; Action <string, string, JsonWriter, JsonSerializer> propertyWriter = Orchard.CRM.Core.Providers.Serialization.Utility.WriteProperty; // ExternalId propertyWriter("ExternalId", contentPart.ExternalId, writer, serializer); // LastSyncTime propertyWriter("LastSyncTime", contentPart.LastSyncTime.ToString(), writer, serializer); this.WriteCommonFields(writer, contentPart, serializer); writer.WriteEnd(); }
static void WriteStrokes(JsonWriter json, out Dictionary <Guid, int> brushMap) { brushMap = new Dictionary <Guid, int>(); json.WritePropertyName("strokes"); json.WriteStartArray(); var strokes = SketchMemoryScript.AllStrokes().ToList(); for (int i = 0; i < strokes.Count; ++i) { if (strokes[i].IsGeometryEnabled) { WriteStroke(json, strokes[i], brushMap); } } json.WriteEnd(); }
//insert reader into s1 according reader's type public static void insert_reader(ref StringBuilder s1, JsonTextReader reader, ref JsonWriter writer) { switch (reader.TokenType) { case JsonToken.StartArray: writer.WriteStartArray(); break; case JsonToken.EndArray: writer.WriteEnd(); break; case JsonToken.PropertyName: writer.WritePropertyName(reader.Value.ToString()); break; case JsonToken.String: writer.WriteValue(reader.Value); break; case JsonToken.Integer: writer.WriteValue(reader.Value); break; case JsonToken.Comment: writer.WriteComment(reader.Value.ToString()); break; case JsonToken.StartObject: writer.WriteStartObject(); break; case JsonToken.EndObject: writer.WriteEndObject(); break; case JsonToken.Null: writer.WriteNull(); break; case JsonToken.Float: writer.WriteValue(reader.Value); break; } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } var matrix4x4 = (Matrix4x4)value; writer.WriteStartObject(); writer.WritePropertyName("m00"); writer.WriteValue(matrix4x4.m00); writer.WritePropertyName("m01"); writer.WriteValue(matrix4x4.m01); writer.WritePropertyName("m02"); writer.WriteValue(matrix4x4.m02); writer.WritePropertyName("m03"); writer.WriteValue(matrix4x4.m03); writer.WritePropertyName("m10"); writer.WriteValue(matrix4x4.m10); writer.WritePropertyName("m11"); writer.WriteValue(matrix4x4.m11); writer.WritePropertyName("m12"); writer.WriteValue(matrix4x4.m12); writer.WritePropertyName("m13"); writer.WriteValue(matrix4x4.m13); writer.WritePropertyName("m20"); writer.WriteValue(matrix4x4.m20); writer.WritePropertyName("m21"); writer.WriteValue(matrix4x4.m21); writer.WritePropertyName("m22"); writer.WriteValue(matrix4x4.m22); writer.WritePropertyName("m23"); writer.WriteValue(matrix4x4.m23); writer.WritePropertyName("m30"); writer.WriteValue(matrix4x4.m30); writer.WritePropertyName("m31"); writer.WriteValue(matrix4x4.m31); writer.WritePropertyName("m32"); writer.WriteValue(matrix4x4.m32); writer.WritePropertyName("m33"); writer.WriteValue(matrix4x4.m33); writer.WriteEnd(); }
static void WriteBrushes(JsonWriter json, Dictionary <Guid, int> brushMap) { var brushList = new BrushDescriptor[brushMap.Count]; foreach (var pair in brushMap) { brushList[pair.Value] = BrushCatalog.m_Instance.GetBrush(pair.Key); } json.WritePropertyName("brushes"); json.WriteStartArray(); for (int i = 0; i < brushList.Length; ++i) { WriteBrush(json, brushList[i]); } json.WriteEnd(); }
public static void WritePropertyValuesArray <T>(string propertyName, Type collectionType, IEnumerable <T> enumeration, System.Action <T> serializeObject, JsonWriter writer, JsonSerializer serialize) { writer.WritePropertyName(propertyName); writer.WriteStartObject(); { WritePropertyCustomType(writer, serialize, collectionType); writer.WritePropertyName("$values"); writer.WriteStartArray(); { foreach (T item in enumeration) { serializeObject.Invoke(item); } } writer.WriteEndArray(); } writer.WriteEnd(); }
public static void WriteParameters(this JsonWriter jw, string keyName, ReportDocument rpt) { //var parameterList = new List<string>(); var parameterFields = rpt.DataDefinition.ParameterFields; jw.WritePropertyName(keyName); jw.WriteStartArray(); foreach (ParameterFieldDefinition parameterField in parameterFields) { jw.WriteStartObject(); jw.WriteProperty("Name", parameterField.Name); jw.WriteProperty("FormulaName", parameterField.FormulaName); jw.WriteProperty("ValueType", parameterField.ValueType.ToString()); jw.WriteProperty("EnableNullValue", parameterField.EnableNullValue.ToString()); jw.WriteEndObject(); } jw.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); CommonPart contentPart = value as CommonPart; // CreatedUtc Utility.WriteProperty("CreatedUtc", contentPart.CreatedUtc, writer, serializer); // PublishedUtc Utility.WriteProperty("PublishedUtc", contentPart.PublishedUtc, writer, serializer); // ModifiedUtc Utility.WriteProperty("ModifiedUtc", contentPart.ModifiedUtc, writer, serializer); this.WriteCommonFields(writer, contentPart, serializer); writer.WriteEnd(); }
protected virtual void WriteIncrementJson(JsonWriter writer, PersonIncrementEvent personEvent) { // https://mixpanel.com/docs/people-analytics/people-http-specification-insert-data //{ // "$add": { // "dollars spent": 17, // "credits remaining": -34 // Subtract by passing a negative value // }, // "$token": "36ada5b10da39a1347559321baf13063", // "$distinct_id": "13793" //} writer.WriteStartObject(); writer.WritePropertyName("$add"); writer.WriteRawValue(personEvent.Increments.ToPropertyArrayJson(Formatting.None) ?? "{}"); this.WriteCommonPersonValues(writer, personEvent); writer.WriteEnd(); }
/// <summary>Writes the JSON representation of the object.</summary> /// <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter" /> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, GorgonKeyVector3 value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } writer.WriteStartObject(); writer.WritePropertyName("time"); writer.WriteValue(value.Time); writer.WritePropertyName("x"); writer.WriteValue(value.Value.X); writer.WritePropertyName("y"); writer.WriteValue(value.Value.Y); writer.WritePropertyName("z"); writer.WriteValue(value.Value.Z); writer.WriteEnd(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); TicketPart contentPart = value as TicketPart; var record = contentPart.Record; // dynamic object corresponding to TicketPartRecord dynamic dynamicRecord = new JObject(); // Basic data dynamicRecord.Status = this.Copy(record.StatusRecord); dynamicRecord.TicketType = this.Copy(record.TicketType); dynamicRecord.PriorityRecord = this.Copy(record.PriorityRecord); dynamicRecord.Service = this.Copy(record.Service); dynamicRecord.Description = record.Description; dynamicRecord.Title = record.Title; dynamicRecord.SourceId = record.SourceId; dynamicRecord.SourceData = record.SourceData; dynamicRecord.Identity = null; if (record.Identity != null) { dynamicRecord.Identity = new JObject(); dynamicRecord.Identity.Add("Id", record.Identity.Id); } if (record.RequestingUser != null) { dynamicRecord.RequestingUser = new JObject(); dynamicRecord.Id = record.RequestingUser.Id; dynamicRecord.UserName = record.RequestingUser.UserName; } dynamicRecord.DueDate = record.DueDate; Utility.WriteProperty("Record", dynamicRecord, writer, serializer); this.WriteCommonFields(writer, contentPart, serializer); // StatusTimes Utility.WriteArray("StatusTimes", contentPart.StatusTimes, writer, serializer); writer.WriteEnd(); }
private void HandleError(JsonWriter writer, int initialDepth) { ClearErrorContext(); while (writer.Top > initialDepth) { writer.WriteEnd(); } }
private void HandleError(JsonWriter writer, int initialDepth) { ClearErrorContext(); if (writer.WriteState == WriteState.Property) writer.WriteNull(); while (writer.Top > initialDepth) { writer.WriteEnd(); } }
public void Indenting() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonWriter(sw)) { jsonWriter.Formatting = Formatting.Indented; jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("CPU"); jsonWriter.WriteValue("Intel"); jsonWriter.WritePropertyName("PSU"); jsonWriter.WriteValue("500W"); jsonWriter.WritePropertyName("Drives"); jsonWriter.WriteStartArray(); jsonWriter.WriteValue("DVD read/writer"); jsonWriter.WriteComment("(broken)"); jsonWriter.WriteValue("500 gigabyte hard drive"); jsonWriter.WriteValue("200 gigabype hard drive"); jsonWriter.WriteEnd(); jsonWriter.WriteEndObject(); } string expected = @"{ ""CPU"": ""Intel"", ""PSU"": ""500W"", ""Drives"": [ ""DVD read/writer"" /*(broken)*/, ""500 gigabyte hard drive"", ""200 gigabype hard drive"" ] }"; string result = sb.ToString(); Console.WriteLine("Indenting"); Console.WriteLine(result); Assert.AreEqual(expected, result); }
public void State() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonWriter(sw)) { Assert.AreEqual(WriteState.Start, jsonWriter.WriteState); jsonWriter.WriteStartObject(); Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); jsonWriter.WritePropertyName("CPU"); Assert.AreEqual(WriteState.Property, jsonWriter.WriteState); jsonWriter.WriteValue("Intel"); Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); jsonWriter.WritePropertyName("Drives"); Assert.AreEqual(WriteState.Property, jsonWriter.WriteState); jsonWriter.WriteStartArray(); Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); jsonWriter.WriteValue("DVD read/writer"); Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); jsonWriter.WriteEnd(); Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); jsonWriter.WriteEndObject(); Assert.AreEqual(WriteState.Start, jsonWriter.WriteState); } }