为了账号安全,请及时绑定邮箱和手机立即绑定

数据转化的问题

数据转化的问题

慕桂英3389331 2019-05-25 14:55:41
假如说我现在有一段这样的数据type=line&areaStyle.show=true&lineStyle.normal.color=#000&lineStyle.normal.width=2type=bar&areaStyle.show=false&lineStyle.normal.color=#fff&lineStyle.normal.width=从数据中我们可以看出从type开始到lineStyle.normal.width结束重复了,我需要的是重复了几次就往数组里塞几个对象,以上重复了两段那么最终的格式如下,我是一点都摸不着头绪,js这方面比较弱,望大神指点,最好能简单阐述下思路我可以慢慢研究[{type:'line',areaStyle:{show:true},lineStyle:{normal:{color:'#000',width:2}}},{type:'bar',areaStyle:{show:true},lineStyle:{normal:{color:'#fff'width:}}},]
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

思路:1.先以根据”type“分割数据,a=[type1,type2,type3...]2.对type1根据”&“分割数据,b=[&1,&2,&3...]3.然后再对&1分割的一条键值对根据"="分割,key=value4.检测key中是否含有".",根据不同情况进行格式化,是一个普通对象,还是嵌套的对象。重复3,4直到b数组中数据处理完。回到1,处理type2,以此类推。
第4步,一个思路,拼成JSON字符串再解析:
varstr="lineStyle.normal.color=#000";
functionformat4(str){
vararr=str.split("=");
//这里将值都转成了字符串;可另写对数字和布尔值和空值时的处理
varval='\"\:\"'+arr[1]+"\"";
varkeys=arr[0];
varend="}";
varres=keys.replace(/\./g,function(){
end+="}"
return"\":{\""
});
res="{\""+res+val+end;
returnJSON.parse(res);
}
format4(str)
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 393 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信