public void WriteArray(BlittableJsonTextWriter writer, JsonParserState state, ObjectJsonParser parser) { if (state.CurrentTokenType != JsonParserToken.StartArray) { throw new InvalidOperationException("StartArray expected, but got " + state.CurrentTokenType); } writer.WriteStartArray(); bool first = true; while (true) { if (parser.Read() == false) { throw new InvalidOperationException("Object json parser can't return partial results"); } if (state.CurrentTokenType == JsonParserToken.EndArray) { break; } if (first == false) { writer.WriteComma(); } first = false; WriteValue(writer, state, parser); } writer.WriteEndArray(); }
public unsafe void WriteObject(BlittableJsonTextWriter writer, JsonParserState state, ObjectJsonParser parser) { if (state.CurrentTokenType != JsonParserToken.StartObject) { throw new InvalidOperationException("StartObject expected, but got " + state.CurrentTokenType); } writer.WriteStartObject(); bool first = true; while (true) { if (parser.Read() == false) { throw new InvalidOperationException("Object json parser can't return partial results"); } if (state.CurrentTokenType == JsonParserToken.EndObject) { break; } if (state.CurrentTokenType != JsonParserToken.String) { throw new InvalidOperationException("Property expected, but got " + state.CurrentTokenType); } if (first == false) { writer.WriteComma(); } first = false; var lazyStringValue = AllocateStringValue(null, state.StringBuffer, state.StringSize); writer.WritePropertyName(lazyStringValue); if (parser.Read() == false) { throw new InvalidOperationException("Object json parser can't return partial results"); } WriteValue(writer, state, parser); } writer.WriteEndObject(); }
public static void WriteArray(this BlittableJsonTextWriter writer, string name, IEnumerable <DynamicJsonValue> items, JsonOperationContext context) { writer.WritePropertyName(name); writer.WriteStartArray(); var first = true; foreach (var item in items) { if (first == false) { writer.WriteComma(); } first = false; context.Write(writer, item); } writer.WriteEndArray(); }
public static void WriteArray(this BlittableJsonTextWriter writer, string name, IEnumerable <LazyStringValue> items) { writer.WritePropertyName(name); writer.WriteStartArray(); var first = true; foreach (var item in items) { if (first == false) { writer.WriteComma(); } first = false; writer.WriteString(item); } writer.WriteEndArray(); }
public static void WriteArray <T>(this BlittableJsonTextWriter writer, JsonOperationContext context, string name, IEnumerable <T> items, Action <BlittableJsonTextWriter, JsonOperationContext, T> onWrite) { writer.WritePropertyName(name); writer.WriteStartArray(); var first = true; foreach (var item in items) { if (first == false) { writer.WriteComma(); } first = false; onWrite(writer, context, item); } writer.WriteEndArray(); }