public static void WriteArray(this BlittableJsonTextWriter writer, string name, IEnumerable <string> items) { writer.WritePropertyName(name); if (items == null) { writer.WriteNull(); return; } writer.WriteStartArray(); var first = true; foreach (var item in items) { if (first == false) { writer.WriteComma(); } first = false; writer.WriteString(item); } writer.WriteEndArray(); }
private unsafe void WriteValue(BlittableJsonTextWriter writer, JsonParserState state, ObjectJsonParser parser) { switch (state.CurrentTokenType) { case JsonParserToken.Null: writer.WriteNull(); break; case JsonParserToken.False: writer.WriteBool(false); break; case JsonParserToken.True: writer.WriteBool(true); break; case JsonParserToken.String: if (state.CompressedSize.HasValue) { var lazyCompressedStringValue = new LazyCompressedStringValue(null, state.StringBuffer, state.StringSize, state.CompressedSize.Value, this); writer.WriteString(lazyCompressedStringValue); } else { writer.WriteString(AllocateStringValue(null, state.StringBuffer, state.StringSize)); } break; case JsonParserToken.Float: writer.WriteDouble(new LazyNumberValue(AllocateStringValue(null, state.StringBuffer, state.StringSize))); break; case JsonParserToken.Integer: writer.WriteInteger(state.Long); break; case JsonParserToken.StartObject: WriteObject(writer, state, parser); break; case JsonParserToken.StartArray: WriteArray(writer, state, parser); break; default: throw new ArgumentOutOfRangeException("Could not understand " + state.CurrentTokenType); } }