Only if you have nested tables. For plain types you can add extra attrs just fine:
create or replace type user_type as object (
attr1 varchar2(100),
attr2 varchar2(100),
add_extra varchar2(100),
attrs varchar2(100)
);
/
select json_objectagg (
att value val
)
from xmltable (
'/USER_TYPE/*'
passing xmltype ( user_type ( 'val1', 'val2', 'new', 'newer' ) )
columns
att varchar2(100) path './name()',
val varchar2(100) path './text()'
);
JSON_OBJECTAGG(ATTVALUEVAL)
{"ATTR1":"val1","ATTR2":"val2","ADD_EXTRA":"new","ATTRS":"newer"}