资讯专栏INFORMATION COLUMN

JSON解析-再也不用后台改键名改值名

Ryan_Li / 2940人阅读

//声明
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,
    }]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102821.html

相关文章

  • ES6学习之 -- Set数据结构

    摘要:类似于数组,但是中不存在重复元素。可以接受一个数组或者其他具有接口的数据结构作为参数从上面的代码可以看出有去重的功能。去重还有另一个方法将数据结构的数据转换成数组。清除实例的指定成员。返回一个布尔值,表示某个值是否在实例之中。 Set Set类似于数组,但是Set中不存在重复元素。Set可以接受一个数组(或者其他具有itarable接口的数据结构)作为参数 const set = ne...

    wawor4827 评论0 收藏0
  • JavaScript JSON——“语法、解析与序列化”的注意要点

    摘要:对象对象作为一种复杂的数据类型,表示的是一组有序的键值对。解析与序列化对象流行的最主要的原因是因为数据结构可以解析为的对象。为了改变序列化对象的结果,函数返回值就是相应键的值。否则按照默认顺序执行序列化。 语法 JSON可以表示一下三种类型的值: 简单值:使用与js相同的语法可以在json中表示字符串、数值、布尔值和null。但是json不支持js的undefined。 对象:对象作...

    琛h。 评论0 收藏0
  • 完爆Facebook/GraphQL,APIJSON全方位对比解析(三)-表关联查询

    摘要:相关阅读完爆,全方位对比解析一基础功能完爆,全方位对比解析二权限控制自发布以来,不断有网友拿来和的对比,甚至有不少人声称完爆。近年稳步上升,已跃居第名。 相关阅读: 完爆Facebook/GraphQL,APIJSON全方位对比解析(一)-基础功能 完爆Facebook/GraphQL,APIJSON全方位对比解析(二)-权限控制 自APIJSON发布以来,不断有网友拿来和Facebo...

    Jioby 评论0 收藏0
  • JSONP原理

    摘要:高级部分前后端联动浏览器服务器数据库是什么文件系统是一种数据库是一种数据库也是一个软件只要能长久地存数据,就是数据库前后端如何配合接下来我们用一个文件充当数据库实际上数据库的存储内容本质就是一个带有结构的文件捋一捋前后端交互的过程代码在这里 jsonp javascript高级部分:前后端联动,浏览器+服务器 1数据库是什么 文件系统是一种数据库MySQL 是一种数据库,也是一个软件只...

    testHs 评论0 收藏0
  • php 语言特性学习 (一)

    摘要:后面可以使用任意字符和下划线例如非法的变量在函数中创建的,它的生命周期与函数一样,在主脚本中生成的变量不在函数中不是全局变量,不能在函数中使用它,但是可以用来访问使用变量的名字作为字符串的关键字给程序员一个鼓励呗微信支付宝 1.类的写法 class MyClass { private $id = 19; public function __construct() { ...

    fuyi501 评论0 收藏0

发表评论

0条评论

Ryan_Li

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<