Json字符串转化成Json对象、数组 + 向Json数组插入一个字段
1.Json字符串转化成对象
普通形式,也就是字段带有双引号,可以使用JSON.parse()完成转化
var a='{"field":"Adu"}';var b=JSON.parse(a);console.log(b); //输出{field: "Adu"}
但通常情况下不可能这么完美,比如,你的字段是单引号
var a="{'field':'Adu'}";var b=JSON.parse(a);console.log(b); //报错Unexpected token ' in JSON at position 1
那么,就要对这种情况进行转换,后端传递的时候,就要使用转义字符
var a="{\"field\":\"Adu\"}";var b=JSON.parse(a);console.log(b); //完美转化 {field: "Adu"}
2.Json字符串转化成数组
有了上面的经验就好说了,只需要遍历数组就可以了
var a=["{ \"field\": \"Enter_Name\",\"field02\": \"Adu\"}","{ \"field\": \"Enter02\" }"]; var b=[]; a.forEach(t => b.push(JSON.parse(t))); //输出: //0: {field: "Enter_Name", field02: "Adu"} //1: {field: "Enter02"}
3.向现有数组中添加一个字段
有些字段不好展示,比如width:fixWidth(0.2),它是一个函数,不能带引号,那么只能后手插入
还是利用上面的例子。
var a=["{ \"field\": \"Enter_Name\",\"field02\": \"Adu\"}","{ \"field\": \"Enter02\" }"]; var b=[]; a.forEach(t => b.push(JSON.parse(t))); var c=[]; b.map((item,index)=>{c.push(Object.assign({},item,{width:fixWidth(0.2)}))});
先向数组b中插入转换的数据,再添加字段。使用Object.assign给一个空对象插入item和字段。
或者是直接遍历b数组,添加字段
var a=["{ \"field\": \"Enter_Name\",\"field02\": \"Adu\"}","{ \"field\": \"Enter02\" }"];var b=[]; a.forEach(t => b.push(JSON.parse(t))); b.forEach((value,index) => {value['width']=fixWidth(0.2)});console.log(b);
记录编程的点滴,体会学习的乐趣