docs: public static boolean hasNumber(final JSONObject json, final String key,
                                      final boolean coerce) {
          if (!coerce) {
              return hasNumber(json, key);
          }
          final Object o = json.opt(key);
          if (o == null || o == JSONObject.NULL) {
              return false;
          }
          if (o instanceof Number) {
              return true;
          }
          if (o instanceof Boolean) {
              return true;
          }
          if (o instanceof String) {
              final String s = (String) o;
              try {
                  Double.valueOf(s);
                  return true;
              } catch (NumberFormatException e) {
                  Log.e(Log.SUBSYSTEM.JSON, TAG, e,
                          "hasNumber(): failed to coerce value at '%s' (%s)", key, o);
              }
          }
          return false;
      }