JSON 해석 - 더 이상 백 엔 드 키 이름 변경 안 해도 돼 요.

1659 단어 자바 scriptjson
/ / 성명
function transTOTree(arr, rule) {
    arr.forEach(item => {
        rule.forEach(map => {
            for (let key in map) {
                let newValue = map.oldKey ? item[map.oldKey] : '';
                if (map.newValue) {
                    newValue = map.newValue(newValue);
                }
                item[map.newKey] = newValue;
            }
        })

        if (item.children && item.children.length > 0) {
            transTOTree(item.children, rule);
        }
    });
    return arr;
}

/ / 매개 변수
var params = [{
        oldKey: "name",
        newKey: "title",
        newValue: v => {
            return v;
        }
    },
    {
        oldKey: "is",
        newKey: "checked",
        newValue: v => {
            return v ? 1 : 0;
        }
    }
]

/ / 아 날로 그 데이터
var oldData = [{
    name: 1,
    is: 1,
    children: [{
        name: 11,
        is: 1,
        children: [{
            name: 1111,
            is: 0,
        }]
    }, {
        name: 12,
        is: 0,
    }]
}, {
    name: 2,
    is: 1,
}]

/ / 호출
console.log(transTOTree(oldData, params))

/ / 출력
    [{
        title: 1,
        checked: true,
        children: [{
            title: 11,
            checked: true,
            children: [{
                title: 1111,
                checked: false,
            }]
        }, {
            title: 12,
            checked: false,
        }]
    }, {
        title: 2,
        checked: true,
    }]

좋은 웹페이지 즐겨찾기