public static SchemaAndValue parseString(String value) {
        if (value == null) {
            return NULL_SCHEMA_AND_VALUE;
        }
        if (value.isEmpty()) {
            return new SchemaAndValue(Schema.STRING_SCHEMA, value);
        }
        ValueParser parser = new ValueParser(new Parser(value));
        return parser.parse(false);
    }
@Test
    public void shouldNotConvertArrayValuesToDecimal() {
        List<Object> decimals = Arrays.asList("\"1.0\"", BigDecimal.valueOf(Long.MAX_VALUE).add(BigDecimal.ONE),
                BigDecimal.valueOf(Long.MIN_VALUE).subtract(BigDecimal.ONE), (byte) 1, (byte) 1);
        List<Object> expected = new ArrayList<>(decimals); // most values are directly reproduced with the same type
        expected.set(0, "1.0"); // The quotes are parsed away, but the value remains a string
        SchemaAndValue schemaAndValue = Values.parseString(decimals.toString());
        Schema schema = schemaAndValue.schema();
        assertEquals(Type.ARRAY, schema.type());
        assertNull(schema.valueSchema());
        assertEquals(expected, schemaAndValue.value());
    }