一、json字符串转json对象、数组
方法1:fastjson
JSON.parse(Str);
方法2:
eval('('+str+')');
二、json对象、数组转字符串
JOSON.stringify(obj);
三、json对象的遍历
var myJson={"name":"zansan","password":"123"};
for(var p in myJson){
console.log(p+" "+myJson.p);
}
ps:json对象不能用map或者foreach来循环,因为这两个方式是array才有的方法
四、json数组的遍历
var myJson = [{"name":"zansan"},{"password":"123"}];
for(var p in myJson){
console.log(p+" "+myJson.p);
}
for(var i = 0; i < myJson.length; i++){
console.log(myJson[i].name+" "+myJson[i].password);
}
//以下五个map的方法是同一个方法的不同写法,forEach依次类推
myJson.map(x=>
console.log(x.name+" "+x.password)
);
myJson.map((x)=>
console.log(x.name+" "+x.password)
);
myJson.map((x)=>{
console.log(x.name+" "+x.password)
}
);
myJson.map((x)=>{
console.log(x.name+" "+x.password);
}
);
myJson.map(function(x){
console.log(x.name+" "+x.password)
});
myJson.forEach(x=>
console.log(x.name+" "+x.password)
);
PS:json字符串转换为json对象后才能
五、其他类型转换为string,
String.vauleof(int)
PS:map()或者forEach()区别
1、map()能做到的forEach()同样可以做到
2、map()更适合用来改变数据,可以链式,forEach()更适合获取数据,如打印数据、存入数据库等
3、map()返回会分配新的内存并返回新的数组,而forEach()不会返回数组,可以通过callback来修改数据
Example:
//链式调用map(),filter(),reduce()等,也叫复合(composition)
let arr = [1, 2, 3, 4, 5]
//首先用map将每个元素乘以2,然后用filter筛选出大于5的元素,最终将结果赋值给arr2
let arrs = arr.map(x=>x*2).filter(x=>x>5);