Walk through a data.tree and constructs a JSON string,
which can be rendered by shinyTree.
Usage
treeToJSON(
tree,
keepRoot = FALSE,
topLevelSlots = c("default", "all"),
createNewId = TRUE,
pretty = FALSE
)Arguments
- tree
the data.tree which should be parsed
- keepRoot
logical. If
FALSE(default) the root node from the tree is pruned- topLevelSlots
determines which slots should be moved to the top level of the node. If
defaultorNULLslots used in the jsTree JSON are kept on the top level, while any other atomic / list slots from the tree are stored in an own slot called ‘data’. Ifall, all slots are stored on the top level. Alternatively, it can be an explicit vector of slot names which should be kept. In the latter case it is the user's responsibility to ensure that jsTree slots stay on the top level.- createNewId
logical. If
TRUEa new id will be generated. Any old ‘id’ will be stored in ‘id.orig’ and a warning will be issued. IfFALSE, any existing id will be re-used.- pretty
logical. If
TRUEthe resulting JSON is prettified
Details
The JSON string generated follows the jsTree specifications. In particular it encodes children nodes via the ‘children’ slot.
All atomic or list slots of a node in the tree are stored in a data slot in the resulting JSON.
If the user wants to store some slots not in the data slot but on the top
level of the node, parameter topLevelSlots can be used. This is useful
for additional parameters such as ‘icon’, ‘li_attr’ or
‘a_attr’, which jsTree expects to be on the top level of the node.
An example of how to make use of this functionality can be found in the
19-data.tree example.
Note
updateTree and renderTree need an unevaluated JSON
string. Hence, this function returns a string rather than the JSON object itself.
Author
Thorn Thaler, thorn.thaler@thothal.at