code: public void transform(JSONObject root) {
          Object[] keySet = root.keySet().toArray();
          for(Object k : keySet) {
              if (cond.check(k.toString())) {
                  this.transformer.transform(root, k); 
              }
              
              // apply recursively
              if (cond.isRecursive()) {
                  this.transform(root, k);
              }
          }
      }
docs: Walk through fields and apply transforming if field meet condition
  Examples:
  Remove all PRICE field recursively
  { "PRICE>": "REMOVE" }
  Remove CREATED_TIME in sub-elements under ORDER (keep TIME of ORDER)
  {"ORDER": { "^CREATED_TIME": { "CREATED_TIME>": "REMOVE" }}}
  @param root
  @return