protected StringNodeBase(
     ReadOnlyMemory <byte> bufferedToken,
     bool isStringNode)
     : base(isStringNode ? JsonNodeType.String : JsonNodeType.FieldName)
 {
     this.value = new Lazy <string>(() => JsonTextParser.GetStringValue(bufferedToken.Span));
 }
            /// <inheritdoc />
            public override string GetStringValue()
            {
                ReadOnlySpan <byte> stringToken = this.jsonTextBuffer.GetBufferedRawJsonToken(
                    this.token.Start,
                    this.token.End).Span;

                return(JsonTextParser.GetStringValue(stringToken));
            }
Пример #3
0
            /// <inheritdoc />
            public override UtfAnyString GetStringValue(IJsonNavigatorNode node)
            {
                if (!(node is StringNodeBase stringNodeBase))
                {
                    throw new ArgumentException($"{node} was not of type: {nameof(StringNodeBase)}.");
                }

                return(JsonTextParser.GetStringValue(stringNodeBase.BufferedValue));
            }
            /// <inheritdoc />
            public override UtfAnyString GetStringValue()
            {
                if (this.TryGetBufferedStringValue(out Utf8Memory memory))
                {
                    return(Utf8String.UnsafeFromUtf8BytesNoValidation(memory.Memory));
                }

                ReadOnlyMemory <byte> stringToken = this.jsonTextBuffer.GetBufferedRawJsonToken(
                    this.token.Start,
                    this.token.End);

                return(JsonTextParser.GetStringValue(Utf8Memory.UnsafeCreateNoValidation(stringToken)));
            }