code: private void beforeValue() throws JSONException {
          if (stack.isEmpty()) {
              return;
          }
  
          Scope context = peek();
          if (context == Scope.EMPTY_ARRAY) { // first in array
              replaceTop(Scope.NONEMPTY_ARRAY);
              newline();
          } else if (context == Scope.NONEMPTY_ARRAY) { // another in array
              out.append(',');
              newline();
          } else if (context == Scope.DANGLING_KEY) { // value for key
              out.append(indent == null ? ":" : ": ");
              replaceTop(Scope.NONEMPTY_OBJECT);
          } else if (context != Scope.NULL) {
              throw new JSONException("Nesting problem");
          }
      }
docs: Inserts any necessary separators and whitespace before a literal value,
  inline array, or inline object. Also adjusts the stack to expect either a
  closing bracket or another element.