Get a JSON representation of a DEX file

    :param vm: :class:`~androguard.core.bytecodes.dvm.DalvikVMFormat`
    :return:

def vm2json(vm):
    """
    Get a JSON representation of a DEX file

    :param vm: :class:`~androguard.core.bytecodes.dvm.DalvikVMFormat`
    :return:
    """
    d = {"name": "root", "children": []}

    for _class in vm.get_classes():
        c_class = {"name": _class.get_name(), "children": []}

        for method in _class.get_methods():
            c_method = {"name": method.get_name(), "children": []}

            c_class["children"].append(c_method)

        d["children"].append(c_class)

    return json.dumps(d)