JSON ã®æä½
JavaScript Object Notation (JSON) ã¯ãæ§é åãã¼ã¿ã表ç¾ããããã®æ¨æºã®ããã¹ããã¼ã¹ã®å½¢å¼ã§ã JavaScript ã®ãªãã¸ã§ã¯ãæ§æã«åºã¥ãã¦ãã¾ããã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã§ãã¼ã¿ã転éããå ´åã«ãã使ããã¾ãï¼ä¾ãã°ãè¤æ°ã®ãã¼ã¿ããµã¼ãã¼ããã¯ã©ã¤ã¢ã³ãã¸éä¿¡ãã¦ãã¦ã§ããã¼ã¸ä¸ã«è¡¨ç¤ºããå ´åãªã©ã§ããã®éãããã¾ãï¼ãé »ç¹ã«è¦ããããã¼ã¿å½¢å¼ã§ãã®ã§ããã®è¨äºã§ã¯ JavaScript ã使ç¨ã㦠JSON ãæ±ãã®ã«å¿ è¦ãªãã¹ã¦ã®ãã¨ãä¾ãã° JSON ãè§£éãã¦ãã®ä¸ã®ãã¼ã¿ã«ã¢ã¯ã»ã¹ãããã JSON ã使ãããããæ¹æ³ã説æãã¾ãã
| åæç¥è: | HTMLããã³CSS ã®åºç¤ãçè§£ããããã¾ã§ã®ã¬ãã¹ã³ã§èª¬æãã JavaScript ãææ¡ãã¦ãããã¨ã |
|---|---|
| å¦ç¿ææ: |
|
JSON ã¨ã¯ä½ã
JSON 㯠JavaScript ãªãã¸ã§ã¯ãã®æ§æã«å¾ã£ãããã¹ããã¼ã¹ã®ãã¼ã¿å½¢å¼ã§ãã æ§é åãã¼ã¿ãæååã¨ãã¦è¡¨ç¾ããããããããã¯ã¼ã¯çµç±ã§ãã¼ã¿ãéä¿¡ããéã«å½¹ç«ã¡ã¾ãã JSON 㯠JavaScript ãªãã¸ã§ã¯ãã®æ§æã«ä¼¼ã¦ãã¾ããã JavaScript ã¨ã¯ç¬ç«ãã¦æ±ããã¨ãã§ãã¾ããå¤ãã®ããã°ã©ãã³ã°è¨èªç°å¢ã«ã¯ JSON ãèªã¿åã£ããï¼è§£éãããï¼çæãããããæ©è½ãããã¾ãã
JavaScript ã§ã¯ãJSON ã®è§£éã¨çæãè¡ãã¡ã½ããã JSON ãªãã¸ã§ã¯ãã§æä¾ããã¦ãã¾ãã
ã¡ã¢: æååããã¤ãã£ããªãã¸ã§ã¯ãã¸å¤æãããã¨ã¯ããã·ãªã¢ã©ã¤ãºã (deserialization) ã¨å¼ã°ãã¦ããããã¤ãã£ããªãã¸ã§ã¯ãããããã¯ã¼ã¯ãéãã¦è»¢éã§ãããã«æååã¸å¤æãããã¨ã¯ãã·ãªã¢ã©ã¤ãºã (serialization) ã¨å¼ã°ãã¦ãã¾ãã
JSON æååã¯ããèªèº«ããã¡ã¤ã«ã¨ãã¦æ ¼ç´ãããã¨ãã§ãã¾ãã .json ã¨ããæ¡å¼µåã®ä»ãããã ã®ããã¹ããã¡ã¤ã«ã§ã MIME ã¿ã¤ã㯠application/json ã§ãã
JSON ã®æ§é
ä¸ã§èª¬æããããã«ãJSON 㯠JavaScript ãªãã¸ã§ã¯ãã«ã¨ã¦ãä¼¼ã¦ããå½¢å¼ã®æååã§ãã æ¬¡ã®ãã®ã¯ããªãã¸ã§ã¯ãã表ãæå¹ãª JSON æååã§ãã ãªããããã¯æå¹ãª JavaScript ã®ãªãã¸ã§ã¯ããªãã©ã«ã§ãããã¾ãããã ããããã¤ãã®æ§æä¸ã®å¶éãããã¾ãã
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
},
{
"name": "Eternal Flame",
"age": 1000000,
"secretIdentity": "Unknown",
"powers": [
"Immortality",
"Heat Immunity",
"Inferno",
"Teleportation",
"Interdimensional travel"
]
}
]
}
ãã® JSON ã JavaScript ããã°ã©ã ã§æååã¨ãã¦èªã¿è¾¼ãã°ãé常ã®ãªãã¸ã§ã¯ãã¨ãã¦è§£éããJavaScript ãªãã¸ã§ã¯ãã®åºæ¬ã®è¨äºã§èª¬æããã®ã¨åããããè¨æ³ããã©ã±ããè¨æ³ã使ã£ã¦ããã®ä¸ã®ãã¼ã¿ã«ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã ä¾ãã°æ¬¡ã®ããã«ãªãã¾ãã
superHeroes.homeTown;
superHeroes.members[1].powers[2];
- ã¾ãã夿°å
superHeroesãæå®ãã¾ãã - ãã®ä¸ã®
membersããããã£ã¸ã¢ã¯ã»ã¹ãããã®ã§ã.membersã使ç¨ãã¾ãã membersã«ã¯ãªãã¸ã§ã¯ãã®é åãæ ¼ç´ããã¦ãã¾ã. ããã§ã¯ãé åå ã® 2 çªç®ã®ãªãã¸ã§ã¯ãã¸ã¢ã¯ã»ã¹ããã®ã§ã[1]ãæå®ãã¾ãã- ãã®ãªãã¸ã§ã¯ãå
ã§ã
powersããããã£ã¸ã¢ã¯ã»ã¹ãããã,.powersã使ç¨ãã¾ãã powersããããã£ã¯é¸æãããã¼ãã¼ã®è½åãå«ãã é åã¨ãªã£ã¦ããããã®ä¸ã® 3 çªç®ã®ãã®ã欲ããã®ã§ã[2]ã¨è¨è¿°ãã¾ãã
éè¦ãªãã¤ã³ãã¯ãJSON ãæ±ããã¨èªä½ã«ç¹å¥ãªãã¨ã¯ä½ããªãã¨ãããã¨ã§ããJSON ã JavaScript ã®ãªãã¸ã§ã¯ãã¨ãã¦è§£éããå¾ã¯ãåããªãã¸ã§ã¯ããªãã©ã«æ§æã使ã£ã¦å®£è¨ããããªãã¸ã§ã¯ãã¨ã¾ã£ããåãããã«æ±ããã¨ãã§ãã¾ãã
ã¡ã¢: ä¸è¨ã® JSON 㯠JSONTest.html ã§åç §ãããã¨ãã§ãã¾ãï¼ãã¼ã¸å ã®ã½ã¼ã¹ã³ã¼ããåç §ãã¦ãã ããï¼ã ãã¼ã¸ãèªã¿è¾¼ãã§è¦ã¦ããã©ã¦ã¶ã¼ã®ã³ã³ã½ã¼ã«ã§å¤æ°å ã®ãã¼ã¿ã«ã¢ã¯ã»ã¹ãã¦ã¿ã¦ãã ããã
JSON ã®é å
ä¸è¨ã§ã JSON ããã¹ãã¯åºæ¬çã«æååã«å ¥ã£ã JavaScript ãªãã¸ã§ã¯ãã®ããã«è¦ãããã¨ã説æãã¾ããã é åã JSON ã¨ã®éã§å¤æãããã¨ãã§ãã¾ããä¾ãã°ã次ã®ãã®ãæå¹ãª JSON ã§ãã
[
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
}
]
é
åã®ã¢ã¤ãã ã«ã¢ã¯ã»ã¹ããã«ã¯ãï¼è§£éæ¸ã¿ã®ãã®ã®ä¸ã§ï¼é
åã®ã¤ã³ããã¯ã¹ãã¾ãæå®ãã¾ããä¾ãã° superHeroes[0].powers[0] ã®ããã«ãã¾ãã
JSON ã«ã¯åä¸ã®ããªããã£ãåãå«ãããã¨ãã§ãã¾ãããã¨ãã°ã29ããDan Jukesããtrue ã¯ãã¹ã¦æå¹ãª JSON ã§ãã
JSON æ§æã®å¶é
åè¿°ã®éãããããã JSON ã¯æå¹ãª JavaScript ãªãã©ã«ï¼ãªãã¸ã§ã¯ããé åãæ°å¤ãªã©ï¼ã§ãããããããã®éã¯æãç«ã¡ã¾ããããã¹ã¦ã® JavaScript ãªãã¸ã§ã¯ããªãã©ã«ãæå¹ãª JSON ã§ããã¨ã¯éãã¾ããã
- JSON ã«ã¯ã·ãªã¢ã©ã¤ãºå¯è½ãªãã¼ã¿åã®ã¿ãå«ãããã¨ãã§ãã¾ããã¤ã¾ãã
- ããªããã£ãåã«ã¤ãã¦ã¯ãJSON ã«ã¯æååãªãã©ã«ãæ°å¤ãªãã©ã«ã
trueãfalseãnullãå«ãããã¨ãã§ãã¾ãããªããundefinedãNaNãInfinityãå«ãããã¨ã¯ã§ãã¾ããã - ããªããã£ãå以å¤ã®ãã¼ã¿åã«ã¤ãã¦ã¯ãJSON ã«ã¯ãªãã¸ã§ã¯ããªãã©ã«ãé
åãå«ãããã¨ãã§ãã¾ããã颿°ãã
DateãSetãMapãªã©ã®ãã®ä»ã®ãªãã¸ã§ã¯ãåã¯å«ãããã¨ãã§ãã¾ãããJSON å ã®ãªãã¸ã§ã¯ããé åã¯ãããã«æå¹ãªJSON ãã¼ã¿åã§æ§æããã¦ããå¿ è¦ãããã¾ãã
- ããªããã£ãåã«ã¤ãã¦ã¯ãJSON ã«ã¯æååãªãã©ã«ãæ°å¤ãªãã©ã«ã
- æååã¯ãåä¸å¼ç¨ç¬¦ã§ã¯ãªããäºéå¼ç¨ç¬¦ã§å²ãå¿ è¦ãããã¾ãã
- æ°å㯠10 鲿³ã§è¡¨è¨ããå¿ è¦ãããã¾ãã
- ãªãã¸ã§ã¯ãã®åããããã£ã¯ã
"ãã¼": å¤ã®å½¢å¼ã§è¨è¿°ããå¿ è¦ãããã¾ããããããã£åã¯ãäºéå¼ç¨ç¬¦ã§å²ã¾ããæååãªãã©ã«ã§ãªããã°ãªãã¾ãããã¡ã½ãããªã©ã® JavaScript ç¬èªã®æ§æã¯ä½¿ç¨ã§ãã¾ãããããã¯ãã¡ã½ããã颿°ã§ããã颿°ã¯ JSON ã®æå¹ãªãã¼ã¿åã§ã¯ãªãããã§ãã - ãªãã¸ã§ã¯ããé åã«ã¯æ«å°¾ã®ã«ã³ããä»ãããã¨ã¯ã§ãã¾ããã
- ã³ã¡ã³ã㯠JSON ã§ã¯è¨±å¯ããã¦ãã¾ããã
ã«ã³ããã³ãã³ããã£ãä¸ã¤ã§ãééã£ãä½ç½®ã«ç½®ãããã¨ãJSONãã¡ã¤ã«ãç¡å¹ã«ãªããå¦çã«å¤±æããåå ã¨ãªãã¾ãã å©ç¨ãããã¨ãã¦ãããã¼ã¿ã注æãã¦ç¢ºèªãã¦ãã ããï¼ããã°ã©ã ã«åé¡ããªãéããã³ã³ãã¥ã¼ã¿ã¼ãçæãã JSON ã®æ¹ããã¨ã©ã¼ãå«ã¾ããå¯è½æ§ãä½ããªãã¾ãï¼ã JSONLint ã JSON-validate ã®ãããªã¢ããªã±ã¼ã·ã§ã³ã使ã£ã¦å¦¥å½æ§ãæ¤è¨¼ããããã¨ãã§ãã¾ãã
ã¡ã¢: ãã®ã»ã¯ã·ã§ã³ãèªã¿çµããã¨ããã§ãScrimba ã® JSON review MDN å¦ç¿ãã¼ããã¼ ã«ããã¤ã³ã¿ã©ã¯ãã£ããªãã¥ã¼ããªã¢ã«ãä½µãã¦æ´»ç¨ãã¦ã¿ã¦ã¯ãããã§ããããããã®ãã¥ã¼ããªã¢ã«ã§ã¯ãåºæ¬çãªJSONæ§æãããã©ã¦ã¶ã®éçºè ãã¼ã«å ã§JSONãªã¯ã¨ã¹ããã¼ã¿ã表示ããæ¹æ³ã«ã¤ãã¦ãå½¹ç«ã¤ã¬ã¤ãã³ã¹ãæä¾ããã¦ãã¾ãã
JSON ã®ä¾ãæä½ãã¦ã¿ã
ããã§ã¯ãã¦ã§ããµã¤ãä¸ã§ã©ã®ããã« JSON å½¢å¼ã®ãã¼ã¿ã使ããã¨ãã§ãããä¾ãéãã¦è¦ã¦ã¿ã¾ãããã
ã¯ããã«
ã¾ãã heroes.html 㨠style.css ã®ã³ãã¼ããã¼ã«ã«ã«ä½æãã¦ãã ããã
å¾è
ã¯ä¾é¡ãã¼ã¸ãã¹ã¿ã¤ãªã³ã°ããããã® CSS ã§ãããåè
ã¯ç°¡å㪠HTML ã§ããå ãã¦ã<script> è¦ç´ ã§ããã®æ¼ç¿ã§æ¸ã JavaScript ã³ã¼ããæ ¼ç´ãã¾ãã
<header>
...
</header>
<section>
...
</section>
<script>
// ããã« JavaScript ãæ¸ã
</script>
JSON ãã¼ã¿ã¯ GitHub ã® https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json ã§å©ç¨ã§ãã¾ãã
ãã® JSON ãã¹ã¯ãªããã«èªã¿è¾¼ãã§ãDOM æä½ã使ã£ã¦æ¬¡ã®ããã«è¡¨ç¤ºãããã¨ã«ãã¾ãã

æä¸ä½ã®é¢æ°
æä¸ä½ã®é¢æ°ã¯ãããªæãã§ãã
async function populate() {
const requestURL =
"https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json";
const request = new Request(requestURL);
const response = await fetch(request);
const superHeroes = await response.json();
populateHeader(superHeroes);
populateHeroes(superHeroes);
}
JSON ãåå¾ããã«ã¯ããã§ããã¨ãã API ã使ç¨ãã¦ãã¾ãã ãã® API ã§ã¯ãJavaScript ãä»ãã¦ãµã¼ãã¼ãããªã½ã¼ã¹ãåå¾ããããã®ãããã¯ã¼ã¯ãªã¯ã¨ã¹ããè¡ããã¨ãã§ãã¾ãï¼ç»åãããã¹ããJSONãHTML ã¹ãããããªã©ï¼ãã¤ã¾ãããã¼ã¸å ¨ä½ãåèªã¿è¾¼ã¿ããªãã¦ããã³ã³ãã³ãã®å°ããªã»ã¯ã·ã§ã³ãæ´æ°ã§ããã®ã§ãã
ãã®é¢æ°ã§ã¯ãæåã® 4 ã¤ã®è¡ã§ãã§ãã API ã使ç¨ãã¦ããµã¼ãã¼ãã JSON ãåå¾ãã¦ãã¾ãã
- GitHub ã® URL ãæ ¼ç´ããããã«ã
requestURLã¨ãã夿°ã宣è¨ãã¾ãã - URL ã使ç¨ãã¦æ°ãã
Requestãªãã¸ã§ã¯ããåæåãã¾ãã fetch()颿°ã使ç¨ãã¦ãããã¯ã¼ã¯è¦æ±ãè¡ããResponseãªãã¸ã§ã¯ããè¿ãã¾ãã- ã¬ã¹ãã³ã¹ãªãã¸ã§ã¯ãã®
json()颿°ã使ç¨ãã¦ãã¬ã¹ãã³ã¹ã JSON ã§åå¾ãã¾ãã
ã¡ã¢:
fetch() API ã¯éåæã§ããéåæé¢æ°ã«ã¤ãã¦ã¯æ¬¡ã®ã¢ã¸ã¥ã¼ã«ã§ããããå¦ã³ã¾ãããä»ã¯ããã§ãã API ã使ç¨ãã颿°åã®åã«ãã¼ã¯ã¼ã asyncãããããéåæé¢æ°ã¸ã®å¼ã³åºãåã«ãã¼ã¯ã¼ã await ãå¿
è¦ã ã¨ãããã¨ã ãè¨ã£ã¦ããã¾ãã
ãã¹ã¦å®äºããã¨ãsuperHeroes 夿°ã« JSON ãåºã«ãã JavaScript ãªãã¸ã§ã¯ããæ ¼ç´ããã¾ããæåã®ãªãã¸ã§ã¯ã㯠<header> ãæ£ãããã¼ã¿ã§æºããã2 ã¤ç®ã¯ãã¼ã ã®åãã¼ãã¼ã®æ
å ±ã«ã¼ãã使ããããã <section> ã«æ¿å
¥ãã¦ãã¾ãã
ãããã¼ã¸ã®å¤ã®è¨å®
ããã¾ã§ã§ãJSON ã®åå¾ã¨ JavaScript ãªãã¸ã§ã¯ãã¸ã®å¤æãã§ãã¾ãããå ã»ã©ã® 2 ã¤ã®é¢æ°ãå®è£ ãã¦ä½¿ã£ã¦ã¿ã¾ããããã¾ãã¯ããã«ã以ä¸ã®ã³ã¼ããããã¾ã§ã®ã³ã¼ãã®ä¸ã«è¿½å ãã¦ãã ããã
function populateHeader(obj) {
const header = document.querySelector("header");
const myH1 = document.createElement("h1");
myH1.textContent = obj.squadName;
header.appendChild(myH1);
const myPara = document.createElement("p");
myPara.textContent = `Hometown: ${obj.homeTown} // Formed: ${obj.formed}`;
header.appendChild(myPara);
}
ã¾ããh1 è¦ç´ ã createElement() ã§çæãããã® textContent ããããã£ã«ãã®ãªãã¸ã§ã¯ãã® squadName ããããã£ãè¨å®ããããã¦ããã appendChild() ã§ header ã«è¿½å ãã¾ããããã¦ã段è½ã«ã¤ãã¦ãåæ§ã«ãè¦ç´ ãçæããå
容ã®ããã¹ããè¨å®ãã header ã«è¿½å ãã¾ããå¯ä¸ã®éãã¯ããã®ããã¹ãããªãã¸ã§ã¯ãã® homeTown 㨠formed ããããã£ã®ä¸¡æ¹ãæ ¼ç´ãããã³ãã¬ã¼ããªãã©ã«ã«è¨å®ããããã¨ã§ãã
ãã¼ãã¼æ å ±ã«ã¼ãã®ä½æ
次ã«ã以ä¸ã®é¢æ°ãã³ã¼ãã®ä¸ã¸è¿½å ãã¦ãã ããããã®é¢æ°ã¯ã¹ã¼ãã¼ãã¼ãã¼ã«ã¼ãã®ä½æã¨ç»é¢è¡¨ç¤ºãè¡ãã¾ãã
function populateHeroes(obj) {
const section = document.querySelector("section");
const heroes = obj.members;
for (const hero of heroes) {
const myArticle = document.createElement("article");
const myH2 = document.createElement("h2");
const myPara1 = document.createElement("p");
const myPara2 = document.createElement("p");
const myPara3 = document.createElement("p");
const myList = document.createElement("ul");
myH2.textContent = hero.name;
myPara1.textContent = `Secret identity: ${hero.secretIdentity}`;
myPara2.textContent = `Age: ${hero.age}`;
myPara3.textContent = "Superpowers:";
const superPowers = hero.powers;
for (const power of superPowers) {
const listItem = document.createElement("li");
listItem.textContent = power;
myList.appendChild(listItem);
}
myArticle.appendChild(myH2);
myArticle.appendChild(myPara1);
myArticle.appendChild(myPara2);
myArticle.appendChild(myPara3);
myArticle.appendChild(myList);
section.appendChild(myArticle);
}
}
å§ãã«ãJavaScript ãªãã¸ã§ã¯ãã® members ããããã£ãæ°ãã夿°ã«ä¿åãã¾ãããã®é
åã«ã¯è¤æ°ã®ãªãã¸ã§ã¯ãããããããããã«ãã¼ãã¼ã«ã¤ãã¦ã®æ
å ±ãå
¥ãã¾ãã
次ã«ãfor...of ã«ã¼ãã使ã£ã¦é åã®ããããã®ãªãã¸ã§ã¯ããå復å¦çãã¾ããããããã®æ¬¡ã®ãããªãã¨ãè¡ãã¾ãã
- æ°ããè¦ç´ ãããã¤ã使ãã¾ãã
<article>1 ã¤ã<h2>1 ã¤ã<p>3 ã¤ã<ul>1 ã¤ã§ãã <h2>ã®ä¸èº«ãç¾å¨ã®ãã¼ãã¼ã®åå (name) ã«ãã¾ãã- 3 ã¤ã®æ®µè½ã®ä¸èº«ããããããã®
secretIdentityãageããªã¹ãã«ããæ å ±ãç´¹ä»ãã¦ããããã«ãè¶ è½å ("Superpowers:")ãã§å§ã¾ãè¡ã¨ãã¾ãã powersããããã£ãsuperPowersã¨ããæ°ãã宿°ã«ä¿åãã¾ãããã®å®æ°ã¯ä»ã®ãã¼ãã¼ã®è¶ è½åã®ãªã¹ããæã¤é åã§ãã- å¥ã®
forã«ã¼ãã使ç¨ãã¦ãä»ã®ãã¼ãã¼ã®è¶ è½åãå復å¦çãã¾ããããããã«å¯¾ãã¦<li>è¦ç´ ã使ããä¸ã«è¶ è½åãå ¥ããlistItemã«<ul>è¦ç´ ï¼myListï¼ãappendChild()ã§è¿½å ãã¾ãã - æå¾ã«ã
<h2>ã<p>ã<ul>ã<article>(myArticle) ã®ä¸ã«è¿½å ãã¦ããããã®<article>ã<section>ã®ä¸ã«è¿½å ãã¾ãããããã追å ããé åºã¯éè¦ã§ãããã HTML ã®ä¸ã§è¡¨ç¤ºãããé åºã«ãªãã¾ãã
ã¡ã¢: 試ãã¦ã¿ãããã®ä¾ã䏿ãåå¾ã§ããªãã£ãå ´åã¯ã heroes-finished.html ã½ã¼ã¹ã³ã¼ããåç §ãã¦ã¿ã¦ãã ããï¼ãã¡ãã§ã©ã¤ãå®è¡ãã§ãã¾ãï¼ã
ã¡ã¢: ããã JavaScript ãªãã¸ã§ã¯ãã¸ã®ã¢ã¯ã»ã¹ã«ä½¿ç¨ãã¦ããããã/ãã©ã±ããè¨æ³ãããåãããªãå ´åã¯ã superheroes.json ãå¥ã®ã¿ããããã¹ãã¨ãã£ã¿ã¼ã§éãããããåç §ããªãã JavaScript ãèªãã§ã¿ãã¨ããã§ãããã ã¾ãããããè¨æ³ããã©ã±ããè¨æ³ã®è©³ç´°ã«ã¤ãã¦ã¯ã JavaScript ãªãã¸ã§ã¯ãã®åºæ¬ã®è¨äºãè¦è¿ãã¦ã¿ã¦ãã ããã
æä¸ä½ã®é¢æ°ã®å¼ã³åºã
æå¾ã«ãæä¸ä½ã® populate() 颿°ãå¼ã³åºãå¿
è¦ãããã¾ãã
populate();
ãªãã¸ã§ã¯ãã¨ããã¹ãéã®å¤æ
ä¸è¨ã®ä¾ã§ã¯ãresponse.json() ã使ç¨ãã¦ãããã¯ã¼ã¯ã¬ã¹ãã³ã¹ãç´æ¥ JavaScript ãªãã¸ã§ã¯ãã«å¤æãã¦ããã®ã§ãJavaScript ãªãã¸ã§ã¯ãã¸ã®ã¢ã¯ã»ã¹ã¯ã·ã³ãã«ã§ããã
ããããæã«ã¯ããã»ã©å¹¸éã§ã¯ãªããã¨ãããã¾ããçã® JSON æååãåãåãããããèªåèªèº«ã§ãªãã¸ã§ã¯ãã«å¤æããå¿ è¦ãããå ´åãããã¾ããã¾ãã JavaScript ã®ãªãã¸ã§ã¯ãããããã¯ã¼ã¯çµç±ã§éä¿¡ãããå ´åãéä¿¡åã« JSON ï¼æååï¼ã«å¤æããå¿ è¦ãããã¾ãã幸ãããã® 2 ã¤ã®åé¡ã¯ã¦ã§ãéçºã§ã¯ãããããã¨ãªã®ã§ããã©ã¦ã¶ã¼ã§ã¯çµã¿è¾¼ã¿ã® JSON ãªãã¸ã§ã¯ããå©ç¨ã§ããããã«ã¯ä»¥ä¸ã® 2 ã¤ã®ã¡ã½ãããåãã£ã¦ãã¾ãã
parse(): JSON æååã弿°ã«åããããã«å¯¾ãã JavaScript ãªãã¸ã§ã¯ããè¿ãã¾ããstringify(): ãªãã¸ã§ã¯ãã弿°ã«åããç価㪠JSON æååãè¿ãã¾ãã
åè ã®åä½ä¾ã heroes-finished-json-parse.html ã«ããã¾ãï¼ã½ã¼ã¹ ãè¦ã¦ä¸ããï¼ãããã§ã¯ä»¥åã«ä½æããä¾ã¨ã¾ã£ããåããã¨ããã¦ãã¾ãããæ¬¡ã®é¨åãç°ãªãã¾ãã
- ã¬ã¹ãã³ã¹ã®
text()ã¡ã½ãããå¼ã³åºããã¨ã§ãJSON ã§ã¯ãªãããã¹ãã¨ãã¦ã¬ã¹ãã³ã¹ãåå¾ãã - 次ã«ã
parse()ã使ç¨ãã¦ãããã¹ãã JavaScript ãªãã¸ã§ã¯ãã«å¤æãã
ã³ã¼ãã®éè¦ãªé¨åã¯ä»¥ä¸ã®éãã§ãã
async function populate() {
const requestURL =
"https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json";
const request = new Request(requestURL);
const response = await fetch(request);
const superHeroesText = await response.text();
const superHeroes = JSON.parse(superHeroesText);
populateHeader(superHeroes);
populateHeroes(superHeroes);
}
ãæ³åã®éãã stringify() ã¯ã¾ã£ããå対ã®åãã«åä½ãã¾ããæ¬¡ã®ã³ã¼ãããã©ã¦ã¶ã¼ã® JavaScript ã³ã³ã½ã¼ã«ã«ä¸ã¤ãã¤æã¡è¾¼ãã§ãã£ã¦ãå®éã«åããã¦ã¿ã¦ä¸ããã
let myObj = { name: "Chris", age: 38 };
myObj;
let myString = JSON.stringify(myObj);
myString;
ããã§ã¯ãJavaScript ãªãã¸ã§ã¯ãã使ãããã®å
容ã確èªããå¾ãstringify() ã使ç¨ã㦠JSON æååã«å¤æãããã®è¿å¤ãæ°ãã夿°ã«æ ¼ç´ããããã«å度確èªãã¦ãã¾ãã
ã¾ã¨ã
ãã®è¨äºã§ã¯ãããã°ã©ã å ã§ãJSON ãçæãããJSON ãè§£éãããJSON ãã¼ã¿ãåç §ãããªã©ãJSON ãæ±ãæ¹æ³ã«ã¤ãã¦ç°¡åã«èª¬æãã¾ãããæ¬¡ã®è¨äºã§ã¯ããããã®æ å ±ãã©ãã ãçè§£ãã身ã«ã¤ãããã確èªããããã®ãã¹ããããã¤ããç´¹ä»ãã¾ãã