public void ReadNextCore(JsonToken token) { switch (token) { case JsonToken.BeginObject: case JsonToken.BeginArray: case JsonToken.ValueSeparator: case JsonToken.NameSeparator: case JsonToken.EndObject: case JsonToken.EndArray: Reader.Advance(1); break; case JsonToken.True: case JsonToken.Null: Reader.Advance(4); break; case JsonToken.False: Reader.Advance(5); break; case JsonToken.String: Reader.Advance(1); if (!Reader.TryReadToAdvancePastDelimiter(out var _, (byte)'"', (byte)'\\')) { throw new JsonParsingException(ExpectedFirst + "not found end string." + ExpectedLast); } break; case JsonToken.Number: Reader.AdvanceToAnyOrEnd(new[] { (byte)' ', (byte)'\t', (byte)'\r', (byte)'\n', (byte)',', (byte)']', (byte)'}', (byte)'"', }); break; case JsonToken.None: default: break; } }