docs: @Override
      public boolean hasNext(int startPosition, int contentLength) {
          char ch = this.text[++this.position];
          if (ch == ',') return true;
          if (ch == '}' || ch == ']') return false;
          if (ch <= ' ') {
              for (;;) {
                  ch = this.text[++this.position];
                  if (ch > ' ') break;
              }
              if (ch == ',') return true;
              if (ch == '}' || ch == ']') return false;
          }
          this.position--; // { [ 交由 readObjectB 或 readMapB 或 readArrayB 读取
          return true;
      }