code: static <T> T get(Map<String, Object> olm, String path, T def) {
          Object ret = def;
          try {
              String[] parts = tokenizePath(path);
              Object o = olm;
              for (int i = 0; i < parts.length; i++) {
                  int[] j = getNumber(parts[i]);
                  String name = getLocalName(parts[i]);
                  o = ((Map) o).get(name);
                  if (j != null) {
                      for (int k = 0; k < j.length; k++) {
                          o = ((List) o).get(j[k]);
                      }
                  }
              }
              if (o != null)
                  ret = o;
              else
                  ret = def;
          } catch (Throwable e) {
          }
          return (T) ret;
      }
docs: Get value by path from object<br>
  If not found return def
  
  @param olm
  @param path
  @param def
  @param <T>
  @return