总结js处理json数据各个方法

在最近做项目中 发现一个很重要的事,前端更多的是和后端接口打交道,如何把数据处理好了之后,按照相应的功能渲染到页面上,于是如何更好更快更准确的用js处理好数据就为其重要。

因此,写下这篇博客,不仅是为了让大家受益,也是为了自己以后方便查阅,巩固基础。

进入正题:

一、json字符串与js对象之间的转换:

1. json字符串转js对象

eg:var jsonStr = '{"name":"xiao","age":12}' ;

        console.log(JSON.parse(jsonStr ));

2.js对象转json字符串

eg:var jsonObj =  {"name":"xiao","age":12};

       console.log(JSON.stringify(jsonObj ))

二、for-in遍历json:

eg:var json = [ {"name":"第1条"}, {"name":"第2条"}, {"name":"第3条"}]

        for(let i in json){console.log( json[i].name );}

三、for-in遍历多层json:

eg:var userArray = [ { "UserID": 11, "Name": { "FirstName": "Truly", "LastName": "Zhu" },"Email": "" }, { "UserID": 12, "Name": { "FirstName": "Jeffrey", "LastName": "Richter" }, "Email": "" }, { "UserID": 13, "Name": { "FirstName": "Scott", "LastName": "Gu" }, "Email": "" }];

for(let i in userArray) //首先循环第一层json{
  for(let j in userArray[i]){ //循环第一层json中的值

     console.log( userArray[i][j] ) //打印循环出来的json值,每个值都会被循环出来,包括第二层json

      for( let k in userArray[i][j] ){

      console.log( userArray[i][j][k] ) //打印循环出来的第二层json值

}

}

}

四、匹配id:

eg:let arr1 = ['aaa','bbb','ccc','ddd'];

        let arr2 = [ {id:'aaa',name:'苹果1'}, {id:'bbb',name:'苹果2'}, {id:'ccc',name:'苹果3'},           {id:'ddd',name:'苹果4'}, {id:'eee',name:'苹果5'} ];

      for (let i in arr2){

        for(let k in arr1){

           if(i == k){

             let str = [];

             str.push(i);

             console.log(str)

}

}

}

五、将数组下标设置为1:

var json = [ {"name":"第1条"}, {"name":"第2条"}, {"name":"第3条"}] ;

for(let i in json){

  console.log( Number(i)+1 );

}

六、取数组中的最大值:

var jsonMax =  [ {id:'aaa',cjnum:'70'}, {id:'bbb',cjnum : '20'}, {id:'ccc',cjnum:'45'}, {id:'ddd',cjnum: '80'}, {id:'eee',cjnum:'55'} ]

let data = jsonMax;

let numberMax = 0;

for(let i = 0 ; i

if(parseFloat (jsonMax[i].cjnum)>numberMax ){//如果70大于0就进入,将70赋值给numberMax,此时,numberMax为70,循环继续,80大于70,满足条件,进来,此时,numberMax由原来的70变成了80。

numberMax   = parseFloat (jsonMax[i].cjnum) ;

}

}

console.log( numberMax )

2、用es6取最大值

let max_item = [];       

let max_arr = [{age:9,"name":'ma'},{age:13,'name':'rong'}];     

    for(let j in max_arr){     

     max_item.push(max_arr[j].age)         

}                                                                                                                    console.log(Math.max(...max_item))




七、改变json中key的名字

    var json = [{

    a: 1,

          b: '张三',

          c: '13000000000',

        },

        {

          a: 2,

          b: '李四',

          c: '13100000000'

        }

      ]

      for (var i = 0; i < json.length; i++) {

        json[i].id = json[i].a;

        json[i].name = json[i].b;

        json[i].tel = json[i].c;

        delete json[i].a

        delete json[i].b

        delete json[i].c

      }

      console.log(json)

八、日期排序

var data = {  

  "rows": [{        "name": "张三",        "time": "2011/4/1 0:00:00",    },

               {        "name": "李四",        "time": "2015/5/6 12:30:00",    },

               {        "name": "王五",        "time": "2012/10/1 22:10:00",    },

               {        "name": "赵六",        "time": "2011/9/1 22:10:00",    }]};

                var rows = data.rows;rows.sort(function(a,b){  

                      return Date.parse(a.time) - Date.parse(b.time);//时间正序});

                          for(var i =0,l=rows.length;i

                            console.log(rows[i].name + " | " + rows[i].time);

                    }

你可能感兴趣的:(总结js处理json数据各个方法)