To `JSONEachRow`
{
    if (seen_columns[index])
        throw Exception("Duplicate field found while parsing JSONEachRow format: " + columnName(index), ErrorCodes::INCORRECT_DATA);
    seen_columns[index] = true;
    const auto & type = getPort().getHeader().getByPosition(index).type;
    const auto & serialization = serializations[index];
    read_columns[index] = readFieldImpl(*in, *columns[index], type, serialization, columnName(index), format_settings, yield_strings);
}
inline bool JSONEachRowRowInputFormat::advanceToNextKey(size_t key_index)
{
    skipWhitespaceIfAny(*in);
    if (in->eof())
        throw ParsingException("Unexpected end of stream while parsing JSONEachRow format", ErrorCodes::CANNOT_READ_ALL_DATA);
    else if (*in->position() == '}')
    {
        ++in->position();
        return false;
    }
    if (key_index > 0)
    {
        assertChar(',', *in);
        skipWhitespaceIfAny(*in);
    }
    return true;
}
void JSONEachRowRowInputFormat::readJSONObject(MutableColumns & columns)