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

关于一个json字符串的解析问题

关于一个json字符串的解析问题

慕村225694 2018-12-06 11:31:49
json字符串 [ { "name":"2015年", "statTotal":[ { "total":"123", "statType":"事件等级" }, { "total":"456", "statType":"行政区域" } ] }, { "name":"2016年", "statTotal":[ { "total":"789", "statType":"事件等级" }, { "total":"110", "statType":"行政区域" } ] }, { "name":"2017年", "statTotal":[ { "total":"128", "statType":"事件等级" }, { "total":"654", "statType":"行政区域" } ] }] 问题 我在后台获取到这么一个json字符串,在前台通过js做处理,需要将他在前台解析成一个类型 下面的map集合,这里的statType的值是动态变化的: ["事件等级" : "123,789,128","行政区域":"456,110,654"] 自己的写法 var legend = [];//图例 var result = eval('(' + data + ')');//json字符串 var levelTotal = [];//存放事件级别统计值 var gridTotal = [];//存放区域... var timeTotal = [];//... var typeTotal = [];//... var resultTotal = [];//... var map = new Map(); for(var j = 0; j < (result[0].statTotal).length; j++){ legend.push((result[0].statTotal)[j].statType); } for (var i = 0; i < result.length; i++) { for(var j = 0; j < (result[i].statTotal).length; j++){ if(result[i].statTotal[j].statType == "事件等级"){ levelTotal.push(result[i].statTotal[j].total); } if(result[i].statTotal[j].statType == "行政区域"){ gridTotal.push(result[i].statTotal[j].total); } if(result[i].statTotal[j].statType == "事件类型"){ typeTotal.push(result[i].statTotal[j].total); } if(result[i].statTotal[j].statType == "事件后果"){ resultTotal.push(result[i].statTotal[j].total); } if(result[i].statTotal[j].statType == "时间"){ timeTotal.push(result[i].statTotal[j].total); } } } //构建map键值对 for(var i = 0 ; i<legend.length ; i++){ if(legend[i] == "事件等级"){ map.set(legend[i],levelTotal); } if(legend[i] == "行政区域"){ map.set(legend[i],gridTotal); } if(legend[i] == "事件类型"){ map.set(legend[i],typeTotal); } if(legend[i] == "事件后果"){ map.set(legend[i],resultTotal); } if(legend[i] == "时间"){ map.set(legend[i],timeTotal); } } 我自己的写法不正确,因为statType的值是动态变化的,而我自己的是写死的,然后if判断, 还希望各位前辈们能指点一二,小弟在此谢过!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 490 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号