2024年1月25日 星期四

JS~讀取json格式檔,在判斷是否要顯示文字

 W3 有介紹如何讀取JSON格式檔,他是使用txt(改成json也可以),但要在Server上跑喔,之前以為拖拉到瀏覽器就可以看到是錯的@@

  1. 讀取JSON格式(可以是txt or json ,檔案裡面不能放註解喔)
    放註解會跑不出來(JS的註解是雙斜線)
  2. 讀取每個JSON資料(會比其他JS慢讀取,所以導致放在最後面@@,將JSON寫在html上就可照位置擺設)
    原本位置是第二個,但都一直跑到最下面,即使下面有三十個區塊也是一樣。
  3. 判斷只要顯示十天內的資料
    很奇怪,原本只判斷日期要大於今天的,但都會刪掉兩天,例如01/25,比對後只顯示01/27,印出今天的日期確定是01/25。
    後來加上另一個判斷,小於五天後的時間,就莫名的準確了@@
  4. 將JSON寫在HTML中要注意每行的資料,要用字串與加號串接起來
    所以寫在html上比較麻煩。
  5. 將其他的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>


沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。