To `JSONEachRow`
{
    if (first_row)
    {
        skipBOMIfExists(in);
        skipWhitespaceIfAny(in);
        if (checkChar('[', in))
            data_in_square_brackets = true;
        first_row = false;
    }
    else
    {
        skipWhitespaceIfAny(in);
        
        if (data_in_square_brackets && checkChar(']', in))
            return {};
        
        if (checkChar(';', in))
            return {};
        
        checkChar(',', in);
    }
    skipWhitespaceIfAny(in);
    if (in.eof())
    {
        eof = true;
        return {};
    }
    return readRowAndGetNamesAndDataTypesForJSONEachRow(in, json_strings);
}
void registerInputFormatJSONEachRow(FormatFactory & factory)