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();
        }
Beispiel #2
0
        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);
            }
        }