docs: @Nullable
      static Map<String, Object> jsonObjectToMap(@Nullable JSONObject jsonObject) {
          if (jsonObject == null) {
              return null;
          }
          Map<String, Object> map = new HashMap<>();
          Iterator<String> keyIterator = jsonObject.keys();
          while (keyIterator.hasNext()) {
              String key = keyIterator.next();
              Object value = jsonObject.opt(key);
              if (NULL.equals(value) || value == null) {
                  continue;
              }
  
              if (value instanceof JSONObject) {
                  map.put(key, jsonObjectToMap((JSONObject) value));
              } else if (value instanceof JSONArray) {
                  map.put(key, jsonArrayToList((JSONArray) value));
              } else {
                  map.put(key, value);
              }
          }
          return map;
      }