It is the difference between a string that is numeric and a genuine number in the JSON, eg
SQL> create table t (id number, col json);
Table created.
SQL> insert into t values(1, '{a:[1, "7"]}');
1 row created.
SQL> insert into t values(2, '{a:[2, 8]}');
1 row created.
SQL>
SQL> select t.col.a[1].number() from t t;
T.COL.A[1].NUMBER()
-------------------
7
8
SQL> select t.col.a[1].numberOnly() from t t;
T.COL.A[1].NUMBERONLY()
-----------------------
8