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, comprising: recursively traversing, by one or more computer processors, objects and arrays inside a 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; 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; and 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.