JSFiddle - React, Tailwind, and code Playground

HTML

<pre id="result">
</pre>

JavaScript

var arr = [
    {id: "1",name: "系统管理",pid: "0"},
    {id: "3",name: "角色管理",pid: "1"},
    {id: "2",name: "查询角色",pid: "3"},
    {id: "4",name: "修改角色",pid: "3"},
    {id: "5",name: "删除角色",pid: "3"}
];

function generateTree(arr) {
    var root = {text:null};
    if (arr.length > 0) {
        var objMap = {};
        root["expanded"] = true;
        root["items"] = [];
        arr.forEach(function(item){
            var node = {text: item.name};
            objMap[item.id] = node;
            if(item.pid === 0) {
                root["items"].push(node);
            } else {
                var parent = objMap[item.pid];
                parent["expanded"] = true;
                if (parent["items"]) {
                    parent["items"].push(node);
                } else {
                    parent["items"] = [];
                    parent["items"].push(node);
                }
            }
        });
    }
    return [root];
}

var json = JSON.stringify(generateTree(arr), null, 2);

document.getElementById("result").innerHTML = json;