JavaScript Object Notation (JSON) ã¯ãæ§é åãã¼ã¿ã表ç¾ããããã®æ¨æºã®ããã¹ããã¼ã¹ã®å½¢å¼ã§ã JavaScript ã®ãªãã¸ã§ã¯ãæ§æã«åºã¥ãã¦ãã¾ããã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã§ãã¼ã¿ã転éããå ´åã«ãã使ããã¾ãï¼ä¾ãã°ãè¤æ°ã®ãã¼ã¿ããµã¼ãã¼ããã¯ã©ã¤ã¢ã³ãã¸éä¿¡ãã¦ãã¦ã§ããã¼ã¸ä¸ã«è¡¨ç¤ºããå ´åãªã©ã§ããã®éãããã¾ãï¼ãé »ç¹ã«è¦ããããã¼ã¿å½¢å¼ã§ãã®ã§ããã®è¨äºã§ã¯ JavaScript ã使ç¨ã㦠JSON ãæ±ãã®ã«å¿ è¦ãªãã¹ã¦ã®ãã¨ãä¾ãã° JSON ãè§£éãã¦ãã®ä¸ã®ãã¼ã¿ã«ã¢ã¯ã»ã¹ãããã JSON ã使ãããããæ¹æ³ã説æãã¾ãã
åæç¥è: HTMLããã³CSS ã®åºç¤ãçè§£ããããã¾ã§ã®ã¬ãã¹ã³ã§èª¬æãã JavaScript ãææ¡ãã¦ãããã¨ã å¦ç¿ææ:Response.json()
ï¼ã使ç¨ãã¦ã JavaScript ãªãã¸ã§ã¯ãã¨ã㦠JSON ãåå¾ãããã¨ãJSON.parse()
ããã³ JSON.stringify()
ã使ç¨ãã¦ãªãã¸ã§ã¯ãã¨ããã¹ãã夿ãããJSON 㯠JavaScript ãªãã¸ã§ã¯ãã®æ§æã«å¾ã£ãããã¹ããã¼ã¹ã®ãã¼ã¿å½¢å¼ã§ã Douglas Crockford ã«ãã£ã¦æ®åããã¾ããã JSON 㯠JavaScript ãªãã¸ã§ã¯ãã®æ§æã«ä¼¼ã¦ãã¾ããã JavaScript ã¨ã¯ç¬ç«ãã¦æ±ããããã¨ããããå¤ãã®ããã°ã©ãã³ã°è¨èªç°å¢ã«ã¯ JSON ãèªã¿åã£ããï¼è§£éãããï¼çæãããããæ©è½ãããã¾ãã
JSON ã¯æååã¨ãã¦åå¨ãã¾ããã§ãã®ã§ããããã¯ã¼ã¯ãéãã¦ãã¼ã¿ã転éãããå ´åã«ä¾¿å©ã§ãã JSON ãã¼ã¿ã¸ã¢ã¯ã»ã¹ãããå ´åã¯ãJavaScript ãªãã¸ã§ã¯ãã¸å¤æããå¿ è¦ãããã¾ãã ããã¯å¤§ããªåé¡ã§ã¯ããã¾ããã JavaScript ã«ã¯ããããç¸äºã«å¤æã§ããã¡ã½ãããæã£ã JSON ã¨ããã°ãã¼ãã«ãªãªãã¸ã§ã¯ããããã®ã§ã夿ã¯é£ããããã¾ããã
ã¡ã¢: æååããã¤ãã£ããªãã¸ã§ã¯ãã¸å¤æãããã¨ã¯ããã·ãªã¢ã©ã¤ãºã (deserialization) ã¨å¼ã°ãã¦ããããã¤ãã£ããªãã¸ã§ã¯ãããããã¯ã¼ã¯ãéãã¦è»¢éã§ãããã«æååã¸å¤æãããã¨ã¯ãã·ãªã¢ã©ã¤ãºã (serialization) ã¨å¼ã°ãã¦ãã¾ãã
JSON æååã¯ããèªèº«ããã¡ã¤ã«ã¨ãã¦æ ¼ç´ãããã¨ãã§ãã¾ãã .json
ã¨ããæ¡å¼µåã®ä»ãããã ã®ããã¹ããã¡ã¤ã«ã§ã MIME ã¿ã¤ã㯠application/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"
]
}
]
}
ãã®æååã JavaScript ããã°ã©ã ã¸èªã¿è¾¼ãã¨ï¼ä¾ãã°ã夿° superHeroes
ã¸ä»£å
¥ããã¨ï¼ã¨ã JavaScript ãªãã¸ã§ã¯ãã®åºæ¬ã®è¨äºã§è¦ãã®ã¨åæ§ã«ãããããè§æ¬å¼§ã使ã£ã¦ãã¼ã¿ã¸ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã ä¾ãã°æ¬¡ã®ããã«ãªãã¾ãã
superHeroes.homeTown;
superHeroes["active"];
ããã«æ·±ãé層ã®ãã¼ã¿ã¸ã¢ã¯ã»ã¹ããå ´åã¯ãåç´ã«ããããã£åãé åã®ã¤ã³ããã¯ã¹ãé£çµãã¾ããä¾ãã°ãã¡ã³ãã¼ãªã¹ãä¸ 2 çªç®ã®ãã¼ãã¼ã® 3 çªç®ã®è½åãåç §ããå ´åã¯ã以ä¸ã®ããã«ãã¾ãã
superHeroes["members"][1]["powers"][2];
superHeroes
ãæå®ãã¾ããmembers
ããããã£ã¸ã¢ã¯ã»ã¹ãããã®ã§ã ["members"]
ã¨æå®ãã¾ããmembers
ã«ã¯ãªãã¸ã§ã¯ãã®é
åãæ ¼ç´ããã¦ãã¾ã. ããã§ã¯ãé
åå
ã® 2 çªç®ã®ãªãã¸ã§ã¯ãã¸ã¢ã¯ã»ã¹ããã®ã§ã [1]
ãæå®ãã¾ããpowers
ããããã£ã¸ã¢ã¯ã»ã¹ãããã, ["powers"]
ã¨æå®ãã¾ããpowers
ããããã£ã¯é¸æãããã¼ãã¼ã®è½åãå«ãã é
åã¨ãªã£ã¦ããããã®ä¸ã® 3 çªç®ã欲ããã®ã§ã [2]
ã¨è¨è¿°ãã¾ããã¡ã¢: ä¸è¨ã® 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"
]
}
]
ãããæå¹ãª JSON ã§ãããè§£éãããã¼ã¿ã«ã¯é
åã®ã¤ã³ããã¯ã¹ãæå®ããã ãã§ããä¾ãã°ã[0]["powers"][0]
ã®ããã«è¡¨è¨ã§ãã¾ãã
ããã§ã¯ãã¦ã§ããµã¤ãä¸ã§ã©ã®ããã« JSON å½¢å¼ã®ãã¼ã¿ã使ããã¨ãã§ãããä¾ãéãã¦è¦ã¦ã¿ã¾ãããã
ã¯ããã«ã¾ãã heroes.html 㨠style.css ã®ã³ãã¼ããã¼ã«ã«ã«ä½æãã¦ãã ããã å¾è
ã¯ä¾é¡ãã¼ã¸ãã¹ã¿ã¤ãªã³ã°ããããã® CSS ã§ãããåè
ã¯ç°¡å㪠HTML ã§ããå ãã¦ã<script>
è¦ç´ ã§ããã®æ¼ç¿ã§æ¸ã JavaScript ã³ã¼ããæ ¼ç´ãã¾ãã
<header>
...
</header>
<section>
...
</section>
<script>
...
</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 ãåå¾ãã¦ãã¾ãã
requestURL
ã¨ãã夿°ã宣è¨ãã¾ãã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
) ã«ãã¾ãã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()
颿°ãå¼ã³åºãå¿
è¦ãããã¾ãã
ä¸è¨ã®ä¾ã§ã¯ã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 ãã¼ã¿ãåç §ãããªã©ã JSON ãæ±ãæ¹æ³ã«ã¤ãã¦ç°¡åã«èª¬æãã¾ãããæ¬¡ã®è¨äºã§ã¯ããªãã¸ã§ã¯ãæå JavaScript ã«ã¤ãã¦è¦ã¦ãããã¨ã«ãã¾ãã
é¢é£æ å ±RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4