ã¹ãã«ãã¹ã: JSON
ãã®ã¹ãã«ãã¹ãã®ç®çã¯ãJSON ã®æä½ã®è¨äºãçè§£ã§ãããã©ãããè©ä¾¡ãããã¨ã§ãã
ã¡ã¢: æå©ããå¿ è¦ãªå ´åã¯ãã¹ãã«ãã¹ã使ç¨ã¬ã¤ãããèªã¿ãã ãããã¾ããã³ãã¥ãã±ã¼ã·ã§ã³ãã£ãã«ã®ããããã使ç¨ãã¦ãç§ãã¡ã«é£çµ¡ãããã¨ãã§ãã¾ãã
JSON 1
ãã®è¨äºã®å¯ä¸ã®èª²é¡ã¯ãJSON ãã¼ã¿ã«ã¢ã¯ã»ã¹ãã¦ãããããã¼ã¸å
ã§ä½¿ç¨ãããã¨ã«é¢ãããã®ã§ããããã¤ãã®æ¯ç«ã¨ãã®åç«ã«é¢ãã JSON ãã¼ã¿ã sample.json ã§æä¾ããã¦ãã¾ããJSON ã¯æååã¨ãã¦ãã¼ã¸ã«èªã¿è¾¼ã¾ããdisplayCatInfo() 颿°ã® catString 弿°ã§å©ç¨ã§ããããã«ãªãã¾ãã
ãã®èª²é¡ã宿ãããã«ã¯ãæ ¼ç´ããããã« displayCatInfo() 颿°ã®ä¸è¶³é¨åãåãã¦ãã ããã
- æ¯ç« 3 å¹ã®ååãã«ã³ãã§åºåã£ã¦
motherInfoã¨ãã夿°ã«å ¥ãã¦ãã ããã kittenInfo夿°ã«ã¯ãåç«ã®ç·æ°ãããã³ãªã¹ã¨ã¡ã¹ã®æ°ãæ ¼ç´ãã¦ãã ããã
ããã¦ããããã®å¤æ°ã®å¤ããæ®µè½ã®ä¸ã§ç»é¢ã«è¡¨ç¤ºãããããã«ãã¾ãã
ãã³ãã質åãããã¤ã示ãã¾ãã
- JSON ãã¼ã¿ã¯
displayCatInfo()颿°ã®ä¸ã§ããã¹ãã¨ãã¦æä¾ããã¾ããJSON ããä½ããã¼ã¿ãåå¾ããåã«ãJSON ãè§£éããå¿ è¦ãããã¾ãã - å¤å´ã®ã«ã¼ãã使ç¨ãã¦ç«ãã«ã¼ãå¦çãã¦ããã®ååã
motherInfo夿°æååã«è¿½å ããå å´ã®ã«ã¼ãã使ç¨ãã¦ãã¹ã¦ã®åç«ãã«ã¼ãå¦çãã¦ããã¹ã¦ã®åç«/ãªã¹/ã¡ã¹ã®åè¨ãå ç®ãããã®è©³ç´°ãkittenInfo夿°ã®æååã«è¿½å ããã¨ããã§ãããã - æå¾ã®æ¯ç«ã®ååã®åã« "and" ãããã®å¾ã«ããªãªããç½®ãå¿ è¦ãããã¾ããã©ãããã°ãJSON ã«ä½å¹ã®ç«ããã¦ãããã®ãããªåä½ãããããã¨ãã§ããã§ããããã
- ãªã
para1.textContent = motherInfo;ã¨para2.textContent = kittenInfo;ã®è¡ã¯displayCatInfo()颿°ã®ä¸ã«ãããã¹ã¯ãªããã®çµããã«ã¯ãªãã®ã§ãããããããã¯ãéåæã³ã¼ãã¨é¢ä¿ãããã¾ãã
const para1 = document.querySelector(".one");
const para2 = document.querySelector(".two");
let motherInfo = "The mother cats are called ";
let kittenInfo;
const requestURL =
"https://mdn.github.io/learning-area/javascript/oojs/tasks/json/sample.json";
fetch(requestURL)
.then((response) => response.text())
.then((text) => displayCatInfo(text));
// 以ä¸ã®ã³ã¼ãã¯ç·¨éããªãã§ãã ããã
function displayCatInfo(catString) {
let total = 0;
let male = 0;
// ããã«ã³ã¼ãã追å
// 以ä¸ã®ã³ã¼ãã¯ç·¨éããªãã§ãã ããã
para1.textContent = motherInfo;
para2.textContent = kittenInfo;
}
ãããã¯ãªãã¯ããã¨ã模ç¯è§£çã表示ãã¾ãã
æçµç㪠JavaScript ã¯æ¬¡ã®ããã«ãªãã¾ãã
// ...
// 以ä¸ã®ã³ã¼ãã¯ç·¨éããªãã§ãã ããã
function displayCatInfo(catString) {
let total = 0;
let male = 0;
const cats = JSON.parse(catString);
for (let i = 0; i < cats.length; i++) {
for (const kitten of cats[i].kittens) {
total++;
if (kitten.gender === "m") {
male++;
}
}
if (i < cats.length - 1) {
motherInfo += `${cats[i].name}, `;
} else {
motherInfo += `and ${cats[i].name}.`;
}
}
kittenInfo = `å
¨é¨ã§ ${total} å¹ã®åç«ããã¾ãããªã¹ã¯ ${male} å¹ã§ã¡ã¹ã¯ ${
total - male
} å¹ã§ãã`;
// 以ä¸ã®ã³ã¼ãã¯ç·¨éããªãã§ãã ããã
para1.textContent = motherInfo;
para2.textContent = kittenInfo;
}