コード例 #1
0
ファイル: JsonReaderPerf.cs プロジェクト: ryalanms/corefxlab
        public byte[] ReaderUtf8JsonReturnBytes()
        {
            var json = new global::Utf8Json.JsonReader(_dataUtf8);

            var         outputArray = new byte[_dataUtf8.Length * 2];
            Span <byte> destination = outputArray;

            global::Utf8Json.JsonToken token = json.GetCurrentJsonToken();
            while (token != global::Utf8Json.JsonToken.None)
            {
                json.ReadNext();
                token = json.GetCurrentJsonToken();

                switch (token)
                {
                case global::Utf8Json.JsonToken.String:
                case global::Utf8Json.JsonToken.Number:
                case global::Utf8Json.JsonToken.True:
                case global::Utf8Json.JsonToken.False:
                case global::Utf8Json.JsonToken.Null:
                    ReadOnlySpan <byte> valueSpan = json.ReadNextBlockSegment();
                    valueSpan.CopyTo(destination);
                    destination[valueSpan.Length]     = (byte)',';
                    destination[valueSpan.Length + 1] = (byte)' ';
                    destination = destination.Slice(valueSpan.Length + 2);
                    break;

                default:
                    break;
                }
            }

            return(outputArray);
        }
コード例 #2
0
ファイル: JsonReaderPerf.cs プロジェクト: ryalanms/corefxlab
        public void ReaderUtf8JsonEmptyLoop()
        {
            var json = new global::Utf8Json.JsonReader(_dataUtf8);

            while (json.GetCurrentJsonToken() != global::Utf8Json.JsonToken.None)
            {
                json.ReadNext();
            }
        }