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);

 

posted @ 2020-12-01 11:00  RookieCoderAdu  阅读(947)  评论(0编辑  收藏  举报