docs: private JSONObject getNeedUpdateJsonObject(final JSONObject oldJsonObject, final JSONObject jsonObject) throws JSONException {
          if (null == oldJsonObject) {
              return jsonObject;
          }
  
          final JSONObject ret = new JSONObject();
          final Iterator<String> keys = jsonObject.keys();
          String key;
          while (keys.hasNext()) {
              key = keys.next();
              if (null == jsonObject.get(key) && null == oldJsonObject.get(key)) {
                  ret.put(key, jsonObject.get(key));
              } else if (!jsonObject.optString(key).equals(oldJsonObject.optString(key))) {
                  ret.put(key, jsonObject.get(key));
              }
          }
  
          return ret;
      }