js语法:json数据格式转化

json数据格式转化

应用实践能加深对函数接口的理解。

数组如同 星星点点的数据。
对象将它们规整。建立索引关系。

reduce就是两者桥梁(字符串数组,split,join就是桥梁)

map() 是处理变量内部数据转化的。

let arr = [{
    'name': 'level-1','value': 'eve-1','id': 'id-1','parentId': null
},{
    'name': 'level-2','value': 'eve-2','id': 'id-2','parentId': 'id-1'
},{
    'name': 'level-3','value': 'eve-3','id': 'id-3','parentId': 'id-2'
},'value': 'eve-4','id': 'id-4','value': 'eve-5','id': 'id-5','parentId': 'id-4'
}];

let result = arr.reduce(function (prev,item) {
const insert = {
name: item.name,value: item.value,id: item.id
};

prev[item.parentId] ? prev[item.parentId].push(insert) : prev[item.parentId] = [insert];
return prev;

},{});

for (var key in result) {
result[key].forEach(function (item,index) {
result[item.id] ? item.children = result[item.id] : ''
});
}

console.log(JSON.stringify(result[null]));

相关文章

  jsonp需要在页面中添加一个<script>元素,由该元素来从其他服务器加载json数据。 <body&g...
<script> var testApi = "地址"; $.ajax({ url:testApi,//可以不是本地域名 type:‘post...
总是有人会遇到跨域问题,然后有个jsonp的解决方案,MVC中代码如下: public class JsonpResult : Syst...
最近开发中遇到调用第三方web_api的功能,后端在处理json数据时使用fastjson来做反序列化,由于调用api...
JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。jsoncpp...
JsonSerializer有多个属性,用于自定义如何序列化JSON。这些也可以通过JsonSerializerSettings参数,在...