1. A method for undoing and redoing changes in a Javascript object notation structure, the method comprising: modifying, by one or more computer processors, a Javascript object notation structure to include a tag on at least one object and a tag on at least one array containing a first version of the Javascript object notation structure, wherein modifying a Javascript object notation structure to include a tag comprises: recursively traversing, by one or more computer processors, objects and arrays inside the hierarchy of the Javascript object notation structure; and adding, by one or more computer processors, an identifier to each object and array; identifying, by one or more computer processors, a change to the Javascript object notation structure creating a second version of the JSON structure; adjusting, by one or more computer processors, the tag on the at least one object and the tag on the at least one array to include the second version of the Javascript object notation structure, wherein adjusting the tag to include the second version of the Javascript object notation structure comprises storing, by one or more computer processors, details for reversing the change to the Javascript object notation structure in an undo stack and a redo stack; adjusting, by one or more computer processors, the displayed first version of the Javascript object notation structure with the second version of the Javascript object notation structure; receiving, by one or more computer processors, data indicating an action, wherein an action includes a undo/redo action to the Javascript object notation structure to return the second Javascript object notation structure to the first version of the Javascript object notation structure; adjusting, by one or more computer processors, the displayed second version of the Javascript object notation structure to the first version of the Javascript object notation structure, wherein adjusting the displayed second version of the Javascript object notation structure to the first version of the Javascript object notation structure comprises utilizing, by one or more computer processors, the stored details for reversing the change to the Javascript object notation structure in the undo stack and the redo stack; and receiving, by one or more computer processors, data indicating an action, wherein an action includes displaying the second version of the Javascript object notation structure to replace the first version of the Javascript object notation structure.