目标
主要想将本地json文件中时间键值对数据进行一个解析,拆分之后再重组成一个新的json数组。
方法
网上找了很久没有一个具体的方案,就用了一个比较原始的方法,首先考虑到我的数据需求不是很麻烦就用了“split()”方法将json数组中对应的一个键值对“value”字符串分割成字符串数组。
代码
1、json
[
{"year":"2017-09-01","value":"111"},
{"year":"2017-10-01","value":"222"},
{"year":"2017-11-01","value":"333"}
]
2、analysis.js
$.getJSON("js/date.json", function(json) {
var jsonlen = json.length; //json长度为4
alert(jsonlen);//打印长度
for(var i = 0; i < jsonlen; i++) {
var data = JSON.stringify(json[i].year);
var value = JSON.stringify(json[i].value);
var str = eval(data);
var year = str.split('')[0] + str.split('')[1] + str.split('')[2] + str.split('')[3];
if(str.split('')[5] != "0") {
var month = str.split('')[5] + str.split('')[6];
} else {
var month = str.split('')[6];
}
if(str.split('')[8] != "0") {
var day = str.split('')[8] + str.split('')[9];
} else {
var day = +str.split('')[9];
}
json[i].year = year + "年"; //依次将值赋值给json数组
}
var jsonString = JSON.stringify(json);
alert(jsonString);
})
3、JSON.js
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}
4、html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
td{
width: 100px;
}
</style>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td>year</td>
<td id="year"></td>
</tr>
<tr>
<td>month</td>
<td id="month"></td>
</tr>
<tr>
<td>day</td>
<td id="day"></td>
</tr>
</table>
<input type="button" id="getBtn" value="获取数据" />
<script type="text/javascript" src="js/jquery.js" ></script>
<script type="text/javascript" src="js/JSON.js" ></script>
<script type="text/javascript" src="js/analysis.js" ></script>
</body>
</html>