W3 有介紹如何讀取JSON格式檔,他是使用txt(改成json也可以),但要在Server上跑喔,之前以為拖拉到瀏覽器就可以看到是錯的@@
- 讀取JSON格式(可以是txt or json ,檔案裡面不能放註解喔)
放註解會跑不出來(JS的註解是雙斜線) - 讀取每個JSON資料(會比其他JS慢讀取,所以導致放在最後面@@,將JSON寫在html上就可照位置擺設)
原本位置是第二個,但都一直跑到最下面,即使下面有三十個區塊也是一樣。 - 判斷只要顯示十天內的資料
很奇怪,原本只判斷日期要大於今天的,但都會刪掉兩天,例如01/25,比對後只顯示01/27,印出今天的日期確定是01/25。
後來加上另一個判斷,小於五天後的時間,就莫名的準確了@@ - 將JSON寫在HTML中要注意每行的資料,要用字串與加號串接起來
所以寫在html上比較麻煩。 - 將其他的JS檔,放入在另一個JS,並放在</html>下面即可@@
<script src="test/OOXX.js"></script>
讀取JSON格式(可以是txt or json ,檔案裡面不能放註解喔)
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText); // 下面可以下判斷
if (myObj.user1[1].date < Date){
wel.document.write('YES' + Date);
}else{
wel.document.write('error' + Date);
};
}
xmlhttp.open("GET", "test/test.json"); // 改成test.txt 也可以
xmlhttp.send();
讀取每個JSON資料(會比其他JS慢讀取,所以導致放在最後面@@,將JSON寫在html上就可照位置擺設)
for (let i=0; i<myObj.user.length; i++){
if (myObj.user[i].date < anMD){
wel.document.write(myObj.user[i].name + "<br>");
}else{
wel.document.write('error' + anMD);
};
};
判斷只要顯示十天內的資料
let thisM = new Date().getMonth('MM')+1;
let thisD = new Date().getDate('dd');
let thisMD = "0"+ thisM +"/" + thisD;
let anD1 = new Date();
anD1.setDate(anD1.getDate()+7); // N天後
let anM = anD1.getMonth('MM')+1;
let anD = anD1.getDate('dd');
let anMD = "0"+ anM +"/" + anD;
saitext = '<center><font color="#CC0066" size="4" face="標楷體"><div><b>標題文字</b><p>';
for (let i=0; i<myObj.user.length; i++){
if ( myObj.saints[i].date >= thisMD && myObj.user[i].date <= anMD){ //判斷時間
saitext += myObj.user[i].date + " " + myObj.user[i].name + '<br>';
}else{
saitext += (thisMD + 'error' + myObj.user[i].date + myObj.user[i].name + "--" + anMD + "<br>");
};
};
saitext += '</p> <hr></div> </font></center>';
wel.document.write(saitext);
將JSON寫在HTML中要注意每行的資料,要用字串與加號串接起來
let sai = '{"saints":['+
'{"date":"12/28", "name":"諸聖嬰孩殉道"},'+
'{"date":"12/31", "name":"聖家節"},'+
'{"date":"01/26", "name":"天主之母聖瑪利亞慶節"}]}';
const obj = JSON.parse(sai);
將其他的JS檔,放入在另一個JS,並放在</html>下面即可@@
<script src="test/OOXX.js"></script>
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。