code: public static void deleteValue(Object target, String dPath) {
          if (target instanceof JsonNode) {
              deleteValue((JsonNode) target, dPath);
              return;
          }
          String[] paths = splitDpath(dPath);
          Object cursor = target;
          // "seek"to the correct position
          for (int i = 0; i < paths.length - 1; i++) {
              cursor = extractValue(cursor, paths[i]);
          }
          if (cursor == null) {
              return;
          }
  
          String index = paths[paths.length - 1];
          Matcher m = PATTERN_INDEX.matcher(index);
          if (m.matches()) {
              try {
                  int i = Integer.parseInt(m.group(1));
                  deleteFieldValue(dPath, cursor, i);
              } catch (IndexOutOfBoundsException e) {
                  // rethrow for now
                  throw e;
              } catch (NumberFormatException e) {
                  throw new IllegalArgumentException("Error: Invalid index. Path [" + dPath
                          + "], target [" + cursor.getClass() + "].", e);
              }
          } else {
              deleteFieldValue(dPath, cursor, index);
          }
      }
docs: Delete a value from the target object specified by DPath expression.
  
  <ul>
  <li>If the specified item's parent is a list or map, the item (specified
  by {@code dPath}) will be removed (for list, next items will be shifted up one
  position).</li>
  <li>If the specified item's parent is an array, the item (specified by
  {@code dPath}) will be set to {@code null}.</li>
  </ul>
  
  @param target
  @param dPath
  @since 0.6.1