To `JSONEachRow`
{
    assertChar('{', *in);
    for (size_t key_index = 0; advanceToNextKey(key_index); ++key_index)
    {
        StringRef name_ref = readColumnName(*in);
        const size_t column_index = columnIndex(name_ref, key_index);
        if (unlikely(ssize_t(column_index) < 0))
        {
            
            
            
            current_column_name.assign(name_ref.data, name_ref.size);
            name_ref = StringRef(current_column_name);
            skipColonDelimeter(*in);
            if (column_index == UNKNOWN_FIELD)
                skipUnknownField(name_ref);
            else if (column_index == NESTED_FIELD)
                readNestedData(name_ref.toString(), columns);
            else
                throw Exception("Logical error: illegal value of column_index", ErrorCodes::LOGICAL_ERROR);
        }
        else
        {
            skipColonDelimeter(*in);
            readField(column_index, columns);
        }
    }
}
void JSONEachRowRowInputFormat::readNestedData(const String & name, MutableColumns & columns)