Code to generate a JSON file hierarchy for jQuery UI's jsTree.
Python Shell
Latest commit b19cba4 Apr 14, 2016 @grimwm Prepare for pypi.


An introduction will be proposed later.


If you have Python installed and wish to get the package directly from the Python Package Index, just run pip install jstree from the command-line. If you already have a prior version installed, just run pip install jstree -U instead.


Please help contribute to this project by going to the GitHub Project Repository and doing one of a few things:

  • send me pull requests through the github interface
  • point me directly to your git repo so I can pull changes
  • send bug reports and feature requests by filing them under the Issues tab at the top


>>> import jstree
>>> node = jstree.Node('a', None)
>>> print node
Node({'text': 'a', 'children': MutableDictionaryObject({})})
>>> print node.jsonData()
{'text': 'a'}

>>> import jstree
>>> node = jstree.Node('a', 1)
>>> print node
Node({'text': 'a', 'children': MutableDictionaryObject({}), 'li_attr': DictionyObject({'id': 1}), 'id': 1})
>>> print node.jsonData()
{'text': 'a', 'id': 1, 'li_attr': {'id': 1}}

>>> import jstree
>>> node = jstree.Node('a', 5, icon="folder", state = {'opened': True})
>>> print node
Node({'text': 'a', 'id': 5, 'state': DictionaryObject({'opened': True}), 'children': MutableDictionaryObject({}), 'li_attr': DictionaryObject({'id': 5}), 'icon': 'folder'})
>>> print node.jsonData()
{'text': 'a', 'state': {'opened': True}, 'id': 5, 'li_attr': {'id': 5}, 'icon': 'folder'}

>>> import jstree
>>> paths = [jstree.Path("editor/2012-07/31/.classpath", 1), jstree.Path("editor/2012-07/31/.project", 2)]
>>> print jstree.JSTree(paths).pretty()

>>> import jstree
>>> paths = [jstree.Path("editor/2012-07/31/.classpath", 1), jstree.Path("editor/2012-07/31/.project", 2)]
>>> t = jstree.JSTree(paths)
>>> d = t.jsonData()
>>> print d
[{'data': 'editor', 'children': [{'data': '2012-07', 'children': [{'data': '31', 'children': [{'data': '.classpath', 'metadata': {'id': 1}}, {'data': '.project', 'metadata': {'id': 2}}]}]}]}]
>>> print d[0]['children'][0]['children'][0]['children'][1]
{'data': '.project', 'metadata': {'id': 2}}
>>> print d[0]['children'][0]['children'][0]['children'][1]['data']
>>> print d[0]['children'][0]['children'][0]['children'][1]['metadata']['id']