Class PathReplicator

java.lang.Object
net.minidev.json.actions.PathReplicator

public class PathReplicator extends Object
Creates a copy of a JSONObject consisting only of the nodes on the user-specified paths.

Paths that do not exist in the specified object are ignored silently. Specifying an empty list of paths to copy or only non-existent paths will result in an empty object being returned.

A path to copy must be specified in the n-gram format - a list of keys from the root down separated by dots: K0[[[[.K1].K2].K3]...]
A key to the right of a dot is a direct child of a key to the left of a dot. Keys with a dot in their name are not supported.

Sample usage:

To replicate the branch k1.k2 from {k1:{k2:v2}, k3:{k4:v4}} use the PathReplicator like so:

 PathReplicator pr = new PathReplicator("k1.k2")
 JSONObject copiedObject = pr.copy(new JSONObject(...))
 
The resulting object 'copiedObject' would be {k1:{k2:v2}}

see unit tests for more examples

Since:
15 March 2016.
Author:
adoneitan@gmail.com
  • Field Details

    • pathsToCopy

      protected List<String> pathsToCopy
  • Constructor Details

    • PathReplicator

      public PathReplicator(net.minidev.json.JSONArray pathsToCopy)
    • PathReplicator

      public PathReplicator(List<String> pathsToCopy)
    • PathReplicator

      public PathReplicator(String... pathsToCopy)
  • Method Details

    • replicate

      public net.minidev.json.JSONObject replicate(net.minidev.json.JSONObject sourceObj) throws Exception
      Throws:
      Exception