CINXE.COM
Working with JSON - Learn web development | MDN
<!doctype html> <html lang="en-US" prefix="og: https://ogp.me/ns#"> <head> <base href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" href="https://developer.mozilla.org/favicon-48x48.bc390275e955dacb2e65.png"> <link rel="apple-touch-icon" href="https://developer.mozilla.org/apple-touch-icon.528534bba673c38049c2.png"> <meta name="theme-color" content="#ffffff"> <link rel="manifest" href="https://developer.mozilla.org/manifest.f42880861b394dd4dc9b.json"> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="MDN Web Docs"> <title>Working with JSON - Learn web development | MDN</title> <link rel="alternate" title="Arbeiten mit JSON" href="https://developer.mozilla.org/de/docs/Learn/JavaScript/Objects/JSON" hreflang="de"> <link rel="alternate" title="Trabajando con JSON" href="https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects/JSON" hreflang="es"> <link rel="alternate" title="Manipuler des données JSON" href="https://developer.mozilla.org/fr/docs/Learn/JavaScript/Objects/JSON" hreflang="fr"> <link rel="alternate" title="JSON の操作" href="https://developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/JSON" hreflang="ja"> <link rel="alternate" title="JSON으로 작업하기" href="https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/JSON" hreflang="ko"> <link rel="alternate" title="Trabalhando com JSON" href="https://developer.mozilla.org/pt-BR/docs/Learn/JavaScript/Objects/JSON" hreflang="pt"> <link rel="alternate" title="Работа с JSON" href="https://developer.mozilla.org/ru/docs/Learn/JavaScript/Objects/JSON" hreflang="ru"> <link rel="alternate" title="使用 JSON" href="https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/JSON" hreflang="zh"> <link rel="alternate" title="使用 JSON 資料" href="https://developer.mozilla.org/zh-TW/docs/Learn/JavaScript/Objects/JSON" hreflang="zh-Hant"> <link rel="alternate" title="Working with JSON" href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON" hreflang="en"> <link rel="preload" as="font" type="font/woff2" href="/static/media/Inter.var.c2fe3cb2b7c746f7966a.woff2" crossorigin=""> <link rel="alternate" type="application/rss+xml" title="MDN Blog RSS Feed" href="https://developer.mozilla.org/en-US/blog/rss.xml" hreflang="en"> <meta name="description" content="JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax. It is commonly used for transmitting data in web applications (e.g., sending some data from the server to the client, so it can be displayed on a web page, or vice versa). You'll come across it quite often, so in this article, we give you all you need to work with JSON using JavaScript, including parsing JSON so you can access data within it, and creating JSON."> <meta property="og:url" content="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON"> <meta property="og:title" content="Working with JSON - Learn web development | MDN"> <meta property="og:type" content="website"> <meta property="og:locale" content="en_US"> <meta property="og:description" content="JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax. It is commonly used for transmitting data in web applications (e.g., sending some data from the server to the client, so it can be displayed on a web page, or vice versa). You'll come across it quite often, so in this article, we give you all you need to work with JSON using JavaScript, including parsing JSON so you can access data within it, and creating JSON."> <meta property="og:image" content="https://developer.mozilla.org/mdn-social-share.d893525a4fb5fb1f67a2.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:height" content="1080"> <meta property="og:image:width" content="1920"> <meta property="og:image:alt" content="The MDN Web Docs logo, featuring a blue accent color, displayed on a solid black background."> <meta property="og:site_name" content="MDN Web Docs"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:creator" content="MozDevNet"> <link rel="canonical" href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON"> <style media="print">.article-actions-container,.document-toc-container,.language-menu,.main-menu-toggle,.on-github,.page-footer,.place,.sidebar,.top-banner,.top-navigation-main,ul.prev-next{display:none!important}.main-page-content,.main-page-content pre{padding:2px}.main-page-content pre{border-left-width:2px}</style> <script src="/static/js/gtag.js" defer></script> <script defer src="/static/js/main.30156711.js"></script> <link href="/static/css/main.f41bc727.css" rel="stylesheet"> <meta http-equiv="X-Translated-By" content="Google"> <meta http-equiv="X-Translated-To" content="fr"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.1_qyHg0XphE.O/am=DAY/d=1/rs=AN8SPfo_O3MiUOHLzIFK2FbMzbiipwQcbg/m=corsproxy" data-sourceurl="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON"></script> <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.1_qyHg0XphE.O/am=DAY/d=1/exm=corsproxy/ed=1/rs=AN8SPfo_O3MiUOHLzIFK2FbMzbiipwQcbg/m=phishing_protection" data-phishing-protection-enabled="false" data-forms-warning-enabled="true" data-source-url="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON"></script> <meta name="robots" content="none"> </head> <body> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.1_qyHg0XphE.O/am=DAY/d=1/exm=corsproxy,phishing_protection/ed=1/rs=AN8SPfo_O3MiUOHLzIFK2FbMzbiipwQcbg/m=navigationui" data-environment="prod" data-proxy-url="https://developer-mozilla-org.translate.goog" data-proxy-full-url="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" data-source-url="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON" data-source-language="pl" data-target-language="fr" data-display-language="en-GB" data-detected-source-language="" data-is-source-untranslated="false" data-source-untranslated-url="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON&anno=2" data-client="tr"></script> <script>if(document.body.addEventListener("load",(t=>{t.target.classList.contains("interactive")&&t.target.setAttribute("data-readystate","complete")}),{capture:!0}),window&&document.documentElement){const t={light:"#ffffff",dark:"#1b1b1b"};try{const e=window.localStorage.getItem("theme");e&&(document.documentElement.className=e,document.documentElement.style.backgroundColor=t[e]);const o=window.localStorage.getItem("nop");o&&(document.documentElement.dataset.nop=o)}catch(t){console.warn("Unable to read theme from localStorage",t)}}</script> <div id="root"> <ul id="nav-access" class="a11y-nav"> <li><a id="skip-main" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#content">Skip to main content</a></li> <li><a id="skip-search" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#top-nav-search-input">Skip to search</a></li> <li><a id="skip-select-language" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#languages-switcher-button">Skip to select language</a></li> </ul> <div class="page-wrapper category-javascript document-page"> <div class="top-banner loading"> <section class="place top container"></section> </div> <div class="sticky-header-container"> <header class="top-navigation "> <div class="container "> <div class="top-navigation-wrap"> <a href="https://developer-mozilla-org.translate.goog/en-US/?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="logo" aria-label="MDN homepage"> <svg id="mdn-docs-logo" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewbox="0 0 694.9 104.4" style="enable-background:new 0 0 694.9 104.4" xml:space="preserve" role="img"> <title>MDN Web Docs</title><path d="M40.3 0 11.7 92.1H0L28.5 0h11.8zm10.4 0v92.1H40.3V0h10.4zM91 0 62.5 92.1H50.8L79.3 0H91zm10.4 0v92.1H91V0h10.4z" class="logo-m"></path><path d="M627.9 95.6h67v8.8h-67v-8.8z" class="logo-_"></path><path d="M367 42h-4l-10.7 30.8h-5.5l-10.8-26h-.4l-10.5 26h-5.2L308.7 42h-3.8v-5.6H323V42h-6.5l6.8 20.4h.4l10.3-26h4.7l11.2 26h.5l5.7-20.3h-6.2v-5.6H367V42zm34.9 20c-.4 3.2-2 5.9-4.7 8.2-2.8 2.3-6.5 3.4-11.3 3.4-5.4 0-9.7-1.6-13.1-4.7-3.3-3.2-5-7.7-5-13.7 0-5.7 1.6-10.3 4.7-14s7.4-5.5 12.9-5.5c5.1 0 9.1 1.6 11.9 4.7s4.3 6.9 4.3 11.3c0 1.5-.2 3-.5 4.7h-25.6c.3 7.7 4 11.6 10.9 11.6 2.9 0 5.1-.7 6.5-2 1.5-1.4 2.5-3 3-4.9l6 .9zM394 51.3c.2-2.4-.4-4.7-1.8-6.9s-3.8-3.3-7-3.3c-3.1 0-5.3 1-6.9 3-1.5 2-2.5 4.4-2.8 7.2H394zm51 2.4c0 5-1.3 9.5-4 13.7s-6.9 6.2-12.7 6.2c-6 0-10.3-2.2-12.7-6.7-.1.4-.2 1.4-.4 2.9s-.3 2.5-.4 2.9h-7.3c.3-1.7.6-3.5.8-5.3.3-1.8.4-3.7.4-5.5V22.3h-6v-5.6H416v27c1.1-2.2 2.7-4.1 4.7-5.7 2-1.6 4.8-2.4 8.4-2.4 4.6 0 8.4 1.6 11.4 4.7 3 3.2 4.5 7.6 4.5 13.4zm-7.7.6c0-4.2-1-7.4-3-9.5-2-2.2-4.4-3.3-7.4-3.3-3.4 0-6 1.2-8 3.7-1.9 2.4-2.9 5-3 7.7V57c0 3 1 5.6 3 7.7s4.5 3.1 7.6 3.1c3.6 0 6.3-1.3 8.1-3.9 1.8-2.7 2.7-5.9 2.7-9.6zm69.2 18.5h-13.2v-7.2c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2 5.7 0 9.8 2.2 12.3 6.5V22.3h-8.6v-5.6h15.8v50.6h6v5.5zM493.2 56v-4.4c-.1-3-1.2-5.5-3.2-7.3s-4.4-2.8-7.2-2.8c-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zm53.1-1.4c0 5.6-1.8 10.2-5.3 13.7s-8.2 5.3-13.9 5.3-10.1-1.7-13.4-5.1c-3.3-3.4-5-7.9-5-13.5 0-5.3 1.6-9.9 4.7-13.7 3.2-3.8 7.9-5.7 14.2-5.7s11 1.9 14.1 5.7c3 3.7 4.6 8.1 4.6 13.3zm-7.7-.2c0-4-1-7.2-3-9.5s-4.8-3.5-8.2-3.5c-3.6 0-6.4 1.2-8.3 3.7s-2.9 5.6-2.9 9.5c0 3.7.9 6.8 2.8 9.4 1.9 2.6 4.6 3.9 8.3 3.9 3.6 0 6.4-1.3 8.4-3.8 1.9-2.6 2.9-5.8 2.9-9.7zm45 5.8c-.4 3.2-1.9 6.3-4.4 9.1-2.5 2.9-6.4 4.3-11.8 4.3-5.2 0-9.4-1.6-12.6-4.8-3.2-3.2-4.8-7.7-4.8-13.7 0-5.5 1.6-10.1 4.7-13.9 3.2-3.8 7.6-5.7 13.2-5.7 2.3 0 4.6.3 6.7.8 2.2.5 4.2 1.5 6.2 2.9l1.5 9.5-5.9.7-1.3-6.1c-2.1-1.2-4.5-1.8-7.2-1.8-3.5 0-6.1 1.2-7.7 3.7-1.7 2.5-2.5 5.7-2.5 9.6 0 4.1.9 7.3 2.7 9.5 1.8 2.3 4.4 3.4 7.8 3.4 5.2 0 8.2-2.9 9.2-8.8l6.2 1.3zm34.7 1.9c0 3.6-1.5 6.5-4.6 8.5s-7 3-11.7 3c-5.7 0-10.6-1.2-14.6-3.6l1.2-8.8 5.7.6-.2 4.7c1.1.5 2.3.9 3.6 1.1s2.6.3 3.9.3c2.4 0 4.5-.4 6.5-1.3 1.9-.9 2.9-2.2 2.9-4.1 0-1.8-.8-3.1-2.3-3.8s-3.5-1.3-5.8-1.7-4.6-.9-6.9-1.4c-2.3-.6-4.2-1.6-5.7-2.9-1.6-1.4-2.3-3.5-2.3-6.3 0-4.1 1.5-6.9 4.6-8.5s6.4-2.4 9.9-2.4c2.6 0 5 .3 7.2.9 2.2.6 4.3 1.4 6.1 2.4l.8 8.8-5.8.7-.8-5.7c-2.3-1-4.7-1.6-7.2-1.6-2.1 0-3.7.4-5.1 1.1-1.3.8-2 2-2 3.8 0 1.7.8 2.9 2.3 3.6 1.5.7 3.4 1.2 5.7 1.6 2.2.4 4.5.8 6.7 1.4 2.2.6 4.1 1.6 5.7 3 1.4 1.6 2.2 3.7 2.2 6.6zM197.6 73.2h-17.1v-5.5h3.8V51.9c0-3.7-.7-6.3-2.1-7.9-1.4-1.6-3.3-2.3-5.7-2.3-3.2 0-5.6 1.1-7.2 3.4s-2.4 4.6-2.5 6.9v15.6h6v5.5h-17.1v-5.5h3.8V51.9c0-3.8-.7-6.4-2.1-7.9-1.4-1.5-3.3-2.3-5.6-2.3-3.2 0-5.5 1.1-7.2 3.3-1.6 2.2-2.4 4.5-2.5 6.9v15.8h6.9v5.5h-20.2v-5.5h6V42.4h-6.1v-5.6h13.4v6.4c1.2-2.1 2.7-3.8 4.7-5.2 2-1.3 4.4-2 7.3-2s5.3.7 7.5 2.1c2.2 1.4 3.7 3.5 4.5 6.4 1.1-2.5 2.7-4.5 4.9-6.1s4.8-2.4 7.9-2.4c3.5 0 6.5 1.1 8.9 3.3s3.7 5.6 3.7 10.2v18.2h6.1v5.5zm42.5 0h-13.2V66c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2s9.8 2.2 12.3 6.5V22.7h-8.6v-5.6h15.8v50.6h6v5.5zm-13.3-16.8V52c-.1-3-1.2-5.5-3.2-7.3s-4.4-2.8-7.2-2.8c-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zm61.5 16.8H269v-5.5h6V51.9c0-3.7-.7-6.3-2.2-7.9-1.4-1.6-3.4-2.3-5.7-2.3-3.1 0-5.6 1-7.4 3s-2.8 4.4-2.9 7v15.9h6v5.5h-19.3v-5.5h6V42.4h-6.2v-5.6h13.6V43c2.6-4.6 6.8-6.9 12.7-6.9 3.6 0 6.7 1.1 9.2 3.3s3.7 5.6 3.7 10.2v18.2h6v5.4h-.2z" class="logo-text"></path> </svg></a><button title="Open main menu" type="button" class="button action has-icon main-menu-toggle" aria-haspopup="menu" aria-label="Open main menu" aria-expanded="false"><span class="button-wrap"><span class="icon icon-menu "></span><span class="visually-hidden">Open main menu</span></span></button> </div> <div class="top-navigation-main"> <nav class="main-nav" aria-label="Main menu"> <ul class="main-menu nojs"> <li class="top-level-entry-container "><button type="button" id="references-button" class="top-level-entry menu-toggle" aria-controls="references-menu" aria-expanded="false">References</button><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="top-level-entry">References</a> <ul id="references-menu" class="submenu references hidden inline-submenu-lg" aria-labelledby="references-button"> <li class="apis-link-container mobile-only "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Overview / Web Technology </div> <p class="submenu-item-description">Web technology reference for developers</p> </div></a></li> <li class="html-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon html"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> HTML </div> <p class="submenu-item-description">Structure of content on the web</p> </div></a></li> <li class="css-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon css"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> CSS </div> <p class="submenu-item-description">Code used to describe document style</p> </div></a></li> <li class="javascript-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon javascript"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> JavaScript </div> <p class="submenu-item-description">General-purpose scripting language</p> </div></a></li> <li class="http-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/HTTP?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon http"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> HTTP </div> <p class="submenu-item-description">Protocol for transmitting web resources</p> </div></a></li> <li class="apis-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon apis"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Web APIs </div> <p class="submenu-item-description">Interfaces for building web applications</p> </div></a></li> <li class="apis-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Mozilla/Add-ons/WebExtensions?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Web Extensions </div> <p class="submenu-item-description">Developing extensions for web browsers</p> </div></a></li> <li class="apis-link-container desktop-only "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Web Technology </div> <p class="submenu-item-description">Web technology reference for developers</p> </div></a></li> </ul></li> <li class="top-level-entry-container active"><button type="button" id="guides-button" class="top-level-entry menu-toggle" aria-controls="guides-menu" aria-expanded="false">Guides</button><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="top-level-entry">Guides</a> <ul id="guides-menu" class="submenu guides hidden inline-submenu-lg" aria-labelledby="guides-button"> <li class="apis-link-container mobile-only "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon learn"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Overview / MDN Learning Area </div> <p class="submenu-item-description">Learn web development</p> </div></a></li> <li class="apis-link-container desktop-only "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon learn"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> MDN Learning Area </div> <p class="submenu-item-description">Learn web development</p> </div></a></li> <li class="html-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon html"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> HTML </div> <p class="submenu-item-description">Learn to structure web content with HTML</p> </div></a></li> <li class="css-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon css"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> CSS </div> <p class="submenu-item-description">Learn to style content using CSS</p> </div></a></li> <li class="javascript-link-container "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon javascript"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> JavaScript </div> <p class="submenu-item-description">Learn to run scripts in the browser</p> </div></a></li> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/Accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Accessibility </div> <p class="submenu-item-description">Learn to make the web accessible to all</p> </div></a></li> </ul></li> <li class="top-level-entry-container "><button type="button" id="mdn-plus-button" class="top-level-entry menu-toggle" aria-controls="mdn-plus-menu" aria-expanded="false">Plus</button><a href="https://developer-mozilla-org.translate.goog/en-US/plus?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="top-level-entry">Plus</a> <ul id="mdn-plus-menu" class="submenu mdn-plus hidden inline-submenu-lg" aria-labelledby="mdn-plus-button"> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/plus?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Overview </div> <p class="submenu-item-description">A customized MDN experience</p> </div></a></li> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/plus/ai-help?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> AI Help </div> <p class="submenu-item-description">Get real-time assistance and support</p> </div></a></li> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/plus/updates?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Updates </div> <p class="submenu-item-description">All browser compatibility updates at a glance</p> </div></a></li> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/plus/docs/features/overview?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Documentation </div> <p class="submenu-item-description">Learn how to use MDN Plus</p> </div></a></li> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/plus/docs/faq?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> FAQ </div> <p class="submenu-item-description">Frequently asked questions about MDN Plus</p> </div></a></li> </ul></li> <li class="top-level-entry-container "><a class="top-level-entry menu-link" href="https://developer-mozilla-org.translate.goog/en-US/curriculum/?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Curriculum <sup class="new">New</sup></a></li> <li class="top-level-entry-container "><a class="top-level-entry menu-link" href="https://developer-mozilla-org.translate.goog/en-US/blog/?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Blog</a></li> <li class="top-level-entry-container "><button type="button" id="tools-button" class="top-level-entry menu-toggle" aria-controls="tools-menu" aria-expanded="false">Tools</button> <ul id="tools-menu" class="submenu tools hidden inline-submenu-lg" aria-labelledby="tools-button"> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/play?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> Playground </div> <p class="submenu-item-description">Write, test and share your code</p> </div></a></li> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/observatory?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> HTTP Observatory </div> <p class="submenu-item-description">Scan a website for free</p> </div></a></li> <li class=" "><a href="https://developer-mozilla-org.translate.goog/en-US/plus/ai-help?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="submenu-item "> <div class="submenu-icon"></div> <div class="submenu-content-container"> <div class="submenu-item-heading"> AI Help </div> <p class="submenu-item-description">Get real-time assistance and support</p> </div></a></li> </ul></li> </ul> </nav> <div class="header-search"> <form action="/en-US/search" class="search-form search-widget" id="top-nav-search-form" role="search"> <label id="top-nav-search-label" for="top-nav-search-input" class="visually-hidden">Search MDN</label><input aria-activedescendant="" aria-autocomplete="list" aria-controls="top-nav-search-menu" aria-expanded="false" aria-labelledby="top-nav-search-label" autocomplete="off" id="top-nav-search-input" role="combobox" type="search" class="search-input-field" name="q" placeholder=" " required value=""><button type="button" class="button action has-icon clear-search-button"><span class="button-wrap"><span class="icon icon-cancel "></span><span class="visually-hidden">Clear search input</span></span></button><button type="submit" class="button action has-icon search-button"><span class="button-wrap"><span class="icon icon-search "></span><span class="visually-hidden">Search</span></span></button> <div id="top-nav-search-menu" role="listbox" aria-labelledby="top-nav-search-label"></div> </form> </div> <div class="theme-switcher-menu"> <button type="button" class="button action has-icon theme-switcher-menu small" aria-haspopup="menu"><span class="button-wrap"><span class="icon icon-theme-os-default "></span>Theme</span></button> </div> <ul class="auth-container"> <li><a href="https://developer-mozilla-org.translate.goog/users/fxa/login/authenticate/?next=/en-US/docs/Learn/JavaScript/Objects/JSON&_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="login-link" rel="nofollow">Log in</a></li> <li><a href="https://developer-mozilla-org.translate.goog/users/fxa/login/authenticate/?next=/en-US/docs/Learn/JavaScript/Objects/JSON&_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" target="_self" rel="nofollow" class="button primary mdn-plus-subscribe-link"><span class="button-wrap">Sign up for free</span></a></li> </ul> </div> </div> </header> <div class="article-actions-container"> <div class="container"> <button type="button" class="button action has-icon sidebar-button" aria-label="Expand sidebar" aria-expanded="false" aria-controls="sidebar-quicklinks"><span class="button-wrap"><span class="icon icon-sidebar "></span></span></button> <nav class="breadcrumbs-container" aria-label="Breadcrumb"> <ol typeof="BreadcrumbList" vocab="https://schema.org/" aria-label="breadcrumbs"> <li property="itemListElement" typeof="ListItem"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="breadcrumb" property="item" typeof="WebPage"><span property="name">Guides</span></a> <meta property="position" content="1"></li> <li property="itemListElement" typeof="ListItem"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="breadcrumb" property="item" typeof="WebPage"><span property="name">JavaScript — Dynamic client-side scripting</span></a> <meta property="position" content="2"></li> <li property="itemListElement" typeof="ListItem"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="breadcrumb" property="item" typeof="WebPage"><span property="name">Introducing JavaScript objects</span></a> <meta property="position" content="3"></li> <li property="itemListElement" typeof="ListItem"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="breadcrumb-current-page" property="item" typeof="WebPage"><span property="name">Working with JSON</span></a> <meta property="position" content="4"></li> </ol> </nav> <div class="article-actions"> <button type="button" class="button action has-icon article-actions-toggle" aria-label="Article actions"><span class="button-wrap"><span class="icon icon-ellipses "></span><span class="article-actions-dialog-heading">Article Actions</span></span></button> <ul class="article-actions-entries"> <li class="article-actions-entry"> <div class="languages-switcher-menu open-on-focus-within"> <button id="languages-switcher-button" type="button" class="button action small has-icon languages-switcher-menu" aria-haspopup="menu"><span class="button-wrap"><span class="icon icon-language "></span>English (US)</span></button> <div class="hidden"> <ul class="submenu language-menu " aria-labelledby="language-menu-button"> <li class=" "> <form class="submenu-item locale-redirect-setting"> <div class="group"> <label class="switch"><input type="checkbox" name="locale-redirect"><span class="slider"></span><span class="label">Remember language</span></label><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/orgs/mdn/discussions/739" rel="external noopener noreferrer" target="_blank" title="Enable this setting to automatically switch to this language when it's available. (Click to learn more.)"><span class="icon icon-question-mark "></span></a> </div> </form></li> <li class=" "><a data-locale="de" href="https://developer-mozilla-org.translate.goog/de/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>Deutsch</span><span title="Diese Übersetzung ist Teil eines Experiments."><span class="icon icon-experimental "></span></span></a></li> <li class=" "><a data-locale="es" href="https://developer-mozilla-org.translate.goog/es/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>Español</span></a></li> <li class=" "><a data-locale="fr" href="https://developer-mozilla-org.translate.goog/fr/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>Français</span></a></li> <li class=" "><a data-locale="ja" href="https://developer-mozilla-org.translate.goog/ja/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>日本語</span></a></li> <li class=" "><a data-locale="ko" href="https://developer-mozilla-org.translate.goog/ko/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>한국어</span></a></li> <li class=" "><a data-locale="pt-BR" href="https://developer-mozilla-org.translate.goog/pt-BR/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>Português (do Brasil)</span></a></li> <li class=" "><a data-locale="ru" href="https://developer-mozilla-org.translate.goog/ru/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>Русский</span></a></li> <li class=" "><a data-locale="zh-CN" href="https://developer-mozilla-org.translate.goog/zh-CN/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>中文 (简体)</span></a></li> <li class=" "><a data-locale="zh-TW" href="https://developer-mozilla-org.translate.goog/zh-TW/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="button submenu-item"><span>正體中文 (繁體)</span></a></li> </ul> </div> </div></li> </ul> </div> </div> </div> </div> <div class="main-wrapper"> <div class="sidebar-container"> <aside id="sidebar-quicklinks" class="sidebar"> <button type="button" class="button action backdrop" aria-label="Collapse sidebar"><span class="button-wrap"></span></button> <nav aria-label="Related Topics" class="sidebar-inner"> <header class="sidebar-actions"> <section class="sidebar-filter-container"> <div class="sidebar-filter "> <label id="sidebar-filter-label" class="sidebar-filter-label" for="sidebar-filter-input"><span class="icon icon-filter"></span><span class="visually-hidden">Filter sidebar</span></label><input id="sidebar-filter-input" autocomplete="off" class="sidebar-filter-input-field false" type="text" placeholder="Filter" value=""><button type="button" class="button action has-icon clear-sidebar-filter-button"><span class="button-wrap"><span class="icon icon-cancel "></span><span class="visually-hidden">Clear filter input</span></span></button> </div> </section> </header> <div class="sidebar-inner-nav"> <div class="in-nav-toc"> <div class="document-toc-container"> <section class="document-toc"> <header> <h2 class="document-toc-heading">In this article</h2> </header> <ul class="document-toc-list"> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#no_really_what_is_json">No, really, what is JSON?</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#active_learning_working_through_a_json_example">Active learning: Working through a JSON example</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#converting_between_objects_and_text">Converting between objects and text</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#test_your_skills!">Test your skills!</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#summary">Summary</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#see_also">See also</a></li> </ul> </section> </div> </div> <div class="sidebar-body"> <ol> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Complete beginners start here!</a></li> <li class="toggle"> <details> <summary>Getting started with the web</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with the web</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/Installing_basic_software?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Installing basic software</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">What will your website look like?</a><abbr class="icon icon-deprecated" title="Deprecated. Not for use in new websites."> <span class="visually-hidden">Deprecated</span> </abbr></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/Dealing_with_files?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Dealing with files</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/HTML_basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML basics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/CSS_basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS basics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript basics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/Publishing_your_website?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Publishing your website</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">How the web works</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML — Structuring the web</a></li> <li class="toggle"> <details> <summary>Introduction to HTML</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to HTML</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with HTML</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">What's in the head? Metadata in HTML</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML text fundamentals</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Creating hyperlinks</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Advanced text formatting</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Document and website structure</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Debugging HTML</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Marking up a letter</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Structuring a page of content</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Multimedia and embedding</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Multimedia_and_embedding?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Multimedia and embedding</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Images in HTML</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Video and audio content</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">From object to iframe — other embedding technologies</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Adding vector graphics to the web</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Responsive images</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Mozilla splash page</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>HTML tables</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Tables?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML tables</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Tables/Basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML table basics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Tables/Advanced?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML table advanced features and accessibility</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Tables/Structuring_planet_data?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Structuring planet data</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS — Styling the web</a></li> <li class="toggle"> <details> <summary>CSS first steps</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/First_steps?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS first steps</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/First_steps/What_is_CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">What is CSS?</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/First_steps/Getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with CSS</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">How CSS is structured</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/First_steps/How_CSS_works?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">How CSS works</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/First_steps/Styling_a_biography_page?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Styling a biography page</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>CSS building blocks</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS building blocks</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Selectors?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS selectors</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Type, class, and ID selectors</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Attribute selectors</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Pseudo-classes and pseudo-elements</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Combinators</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Cascade, specificity, and inheritance</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Cascade_layers?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Cascade layers</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/The_box_model?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">The box model</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Backgrounds and borders</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Handling different text directions</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Overflowing content</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Values_and_units?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS values and units</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Sizing items in CSS</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Images, media, and form elements</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Styling_tables?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Styling tables</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Advanced_styling_effects?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Advanced styling effects</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Debugging CSS</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Organizing?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Organizing your CSS</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Fundamental CSS comprehension</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Creating fancy letterheaded paper</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Building_blocks/A_cool_looking_box?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">A cool-looking box</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Styling text</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Styling_text?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS styling text</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Styling_text/Fundamentals?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Fundamental text and font styling</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Styling_text/Styling_lists?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Styling lists</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Styling_text/Styling_links?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Styling links</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Styling_text/Web_fonts?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Web fonts</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Styling_text/Typesetting_a_homepage?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Typesetting a community school homepage</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>CSS layout</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS layout</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to CSS layout</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Normal_Flow?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Normal Flow</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Flexbox?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Flexbox</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Grids?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Grids</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Floats?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Floats</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Positioning?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Positioning</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Multiple-column layout</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Responsive design</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Media_queries?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Beginner's guide to media queries</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Legacy layout methods</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Supporting older browsers</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Fundamental layout comprehension</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript — Dynamic client-side scripting</a></li> <li class="toggle"> <details> <summary>JavaScript first steps</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript first steps</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">What is JavaScript?</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/A_first_splash?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">A first splash into JavaScript</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/What_went_wrong?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">What went wrong? Troubleshooting JavaScript</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/Variables?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Storing the information you need — Variables</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/Math?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Basic math in JavaScript — numbers and operators</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/Strings?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Handling text — strings in JavaScript</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Useful string methods</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/Arrays?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Arrays</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps/Silly_story_generator?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Silly story generator</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>JavaScript building blocks</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript building blocks</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/conditionals?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Making decisions in your code — conditionals</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Looping_code?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Looping code</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Functions?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Functions — reusable blocks of code</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Build_your_own_function?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Build your own function</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Return_values?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Function return values</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Events?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to events</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Event_bubbling?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Event bubbling</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Image_gallery?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Image gallery</a></li> </ol> </details></li> <li class="toggle"> <details open> <summary>Introducing JavaScript objects</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introducing JavaScript objects</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript object basics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Object_prototypes?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Object prototypes</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Object-oriented_programming?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Object-oriented programming</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Classes in JavaScript</a></li> <li><em><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" aria-current="page">Working with JSON</a></em></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Object_building_practice?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Object building practice</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Adding features to our bouncing balls demo</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Asynchronous JavaScript</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Asynchronous?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Asynchronous JavaScript</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Asynchronous/Introducing?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introducing asynchronous JavaScript</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Asynchronous/Promises?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">How to use promises</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">How to implement a promise-based API</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Asynchronous/Introducing_workers?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introducing workers</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Asynchronous/Sequencing_animations?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Sequencing animations</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Client-side web APIs</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Client-side web APIs</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to web APIs</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Manipulating documents</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Fetching data from the server</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Third-party APIs</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Drawing graphics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Video and Audio APIs</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Client-side storage</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Web forms — Working with user data</a></li> <li class="toggle"> <details> <summary>Web form building blocks</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Web form building blocks</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Your_first_form?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Your first form</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/How_to_structure_a_web_form?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">How to structure a web form</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Basic_native_form_controls?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Basic native form controls</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/HTML5_input_types?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">The HTML5 input types</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Other_form_controls?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Other form controls</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Styling_web_forms?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Styling web forms</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Advanced_form_styling?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Advanced form styling</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/UI_pseudo-classes?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">UI pseudo-classes</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Form_validation?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Client-side form validation</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Sending form data</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Advanced web form techniques</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/How_to_build_custom_form_controls?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">How to build custom form controls</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Sending_forms_through_JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Sending forms through JavaScript</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/Property_compatibility_table_for_form_controls?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS property compatibility table for form controls</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Forms/HTML_forms_in_legacy_browsers?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML forms in legacy browsers</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Accessibility — Make the web usable by everyone</a></li> <li class="toggle"> <details> <summary>Accessibility guides</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Accessibility</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility/What_is_accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">What is accessibility?</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility/HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML: A good basis for accessibility</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility/CSS_and_JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS and JavaScript accessibility best practices</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility/WAI-ARIA_basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">WAI-ARIA basics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility/Multimedia?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Accessible multimedia</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility/Mobile?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Mobile accessibility</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Accessibility/Accessibility_troubleshooting?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Assessment: Accessibility troubleshooting</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Performance — Making websites fast and responsive</a></li> <li class="toggle"> <details> <summary>Performance guides</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Web performance</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/why_web_performance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">The "why" of web performance</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/What_is_web_performance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">What is web performance?</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/Perceived_performance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Perceived performance</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/Measuring_performance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Measuring performance</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/Multimedia?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Multimedia: Images</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/video?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Multimedia: video</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript performance optimization</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/HTML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTML performance optimization</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">CSS performance optimization</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Performance/business_case_for_performance?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">The business case for web performance</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MathML — Writing mathematics with MathML</a></li> <li class="toggle"> <details> <summary>MathML first steps</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML/First_steps?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MathML first steps</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML/First_steps/Getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with MathML</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML/First_steps/Text_containers?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MathML Text Containers</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML/First_steps/Fractions_and_roots?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MathML fractions and roots</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML/First_steps/Scripts?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MathML scripted elements</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML/First_steps/Tables?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MathML tables</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/MathML/First_steps/Three_famous_mathematical_formulas?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Three famous mathematical formulas</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Games?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Games — Developing games for the web</a></li> <li class="toggle"> <details> <summary>Guides and tutorials</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Games/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to game development for the Web</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Games/Techniques?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Techniques for game development</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Games/Tutorials?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Tutorials</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Games/Publishing_games?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Publishing games</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Tools and testing</a></li> <li class="toggle"> <details> <summary>Client-side web development tools</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Understanding client-side web development tools</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Client-side tooling overview</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Command line crash course</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Package_management?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Package management basics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Introducing_complete_toolchain?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introducing a complete toolchain</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Deployment?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Deploying our app</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Introduction to client-side frameworks</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to client-side frameworks</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Framework main features</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>React</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with React</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Beginning our React todo list</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_components?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Componentizing our React app</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_events_state?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">React interactivity: Events and state</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_filtering_conditional_rendering?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">React interactivity: Editing, filtering, conditional rendering</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Accessibility in React</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_resources?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">React resources</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Ember</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with Ember</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_structure_componentization?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Ember app structure and componentization</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_interactivity_events_state?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Ember interactivity: Events, classes and state</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_conditional_footer?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Ember Interactivity: Footer functionality, conditional rendering</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_routing?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Routing in Ember</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_resources?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Ember resources and troubleshooting</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Vue</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with Vue</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_component?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Creating our first Vue component</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_rendering_lists?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Rendering a list of Vue components</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_methods_events_models?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Adding a new todo form: Vue events, methods, and models</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_styling?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Styling Vue components with CSS</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_computed_properties?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Using Vue computed properties</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_conditional_rendering?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Vue conditional rendering: editing existing todos</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Vue refs and lifecycle methods for focus management</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Vue resources</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Svelte</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with Svelte</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_Todo_list_beginning?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Starting our Svelte to-do list app</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_variables_props?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Dynamic behavior in Svelte: working with variables and props</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_components?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Componentizing our Svelte app</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Advanced Svelte: Reactivity, lifecycle, accessibility</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_stores?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Working with Svelte stores</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_TypeScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">TypeScript support in Svelte</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_deployment_next?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Deployment and next steps</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Angular</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_getting_started?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Getting started with Angular</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_todo_list_beginning?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Beginning our Angular todo list app</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_styling?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Styling our Angular app</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_item_component?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Creating an item component</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_filtering?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Filtering our to-do items</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_building?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Building Angular applications and further resources</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Git and GitHub</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/GitHub?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Git and GitHub</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Cross browser testing</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Cross browser testing</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to cross-browser testing</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Strategies for carrying out testing</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Handling common HTML and CSS problems</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Handling common JavaScript problems</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Handling common accessibility problems</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Implementing feature detection</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Automated_testing?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to automated testing</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Your_own_automation_environment?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Setting up your own test automation environment</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Server-side website programming</a></li> <li class="toggle"> <details> <summary>First steps</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/First_steps?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Server-side website programming first steps</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/First_steps/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to the server side</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/First_steps/Client-Server_overview?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Client-Server Overview</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/First_steps/Web_frameworks?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Server-side web frameworks</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/First_steps/Website_security?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Website security</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Django web framework (Python)</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Web Framework (Python)</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django introduction</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/development_environment?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Setting up a Django development environment</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Tutorial_local_library_website?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial: The Local Library website</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/skeleton_website?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 2: Creating a skeleton website</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Models?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 3: Using models</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Admin_site?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 4: Django admin site</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Home_page?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 5: Creating our home page</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Generic_views?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 6: Generic list and detail views</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Sessions?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 7: Sessions framework</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Authentication?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 8: User authentication and permissions</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Forms?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 9: Working with forms</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Testing?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 10: Testing a Django web application</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/Deployment?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django Tutorial Part 11: Deploying Django to production</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/web_application_security?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Django web application security</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Django/django_assessment_blog?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Assessment: DIY Django mini blog</a></li> </ol> </details></li> <li class="toggle"> <details> <summary>Express Web Framework (Node.js/JavaScript)</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express web framework (Node.js/JavaScript)</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/Introduction?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express/Node introduction</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/development_environment?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Setting up a Node development environment</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/Tutorial_local_library_website?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express Tutorial: The Local Library website</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/skeleton_website?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express Tutorial Part 2: Creating a skeleton website</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/mongoose?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express Tutorial Part 3: Using a Database (with Mongoose)</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/routes?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express Tutorial Part 4: Routes and controllers</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/Displaying_data?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express Tutorial Part 5: Displaying library data</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/forms?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express Tutorial Part 6: Working with forms</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Server-side/Express_Nodejs/deployment?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Express Tutorial Part 7: Deploying to production</a></li> </ol> </details></li> <li class="section"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Common_questions?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Further resources</a></li> <li class="toggle"> <details> <summary>Common questions</summary> <ol> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Common_questions?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Common questions</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/HTML/Howto?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Use HTML to solve common problems</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/CSS/Howto?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Use CSS to solve common problems</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Howto?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Solve common problems in your JavaScript code</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Common_questions/Web_mechanics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Web mechanics</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Common_questions/Tools_and_setup?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Tools and setup</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/Common_questions/Design_and_accessibility?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Design and accessibility</a></li> </ol> </details></li> </ol> </div> </div> <section class="place side"></section> </nav> </aside> <div class="toc-container"> <aside class="toc"> <nav> <div class="document-toc-container"> <section class="document-toc"> <header> <h2 class="document-toc-heading">In this article</h2> </header> <ul class="document-toc-list"> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#no_really_what_is_json">No, really, what is JSON?</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#active_learning_working_through_a_json_example">Active learning: Working through a JSON example</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#converting_between_objects_and_text">Converting between objects and text</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#test_your_skills!">Test your skills!</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#summary">Summary</a></li> <li class="document-toc-item "><a class="document-toc-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#see_also">See also</a></li> </ul> </section> </div> </nav> </aside> <section class="place side"></section> </div> </div> <main id="content" class="main-content "> <article class="main-page-content" lang="en-US"> <header> <h1>Working with JSON</h1> </header> <div class="section-content"> <ul class="prev-next"> <li><a class="button secondary" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><span class="button-wrap"> Previous </span></a></li> <li><a class="button secondary" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><span class="button-wrap"> Overview: Introducing JavaScript objects</span></a></li> <li><a class="button secondary" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Object_building_practice?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><span class="button-wrap"> Next </span></a></li> </ul> <p>JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax. It is commonly used for transmitting data in web applications (e.g., sending some data from the server to the client, so it can be displayed on a web page, or vice versa). You'll come across it quite often, so in this article, we give you all you need to work with JSON using JavaScript, including parsing JSON so you can access data within it, and creating JSON.</p> <figure class="table-container"> <table> <tbody> <tr> <th scope="row">Prerequisites:</th> <td>A basic understanding of HTML and CSS, familiarity with JavaScript basics (see <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/First_steps?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">First steps</a> and <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Building blocks</a>) and OOJS basics (see <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Introduction to objects</a>).</td> </tr> <tr> <th scope="row">Objective:</th> <td>To understand how to work with data stored in JSON, and create your own JSON strings.</td> </tr> </tbody> </table> </figure> </div> <section aria-labelledby="no_really_what_is_json"> <h2 id="no_really_what_is_json"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#no_really_what_is_json">No, really, what is JSON?</a></h2> <div class="section-content"> <p><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Glossary/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JSON</a> is a text-based data format following JavaScript object syntax, which was popularized by <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://en.wikipedia.org/wiki/Douglas_Crockford" class="external" target="_blank">Douglas Crockford</a>. Even though it closely resembles JavaScript object literal syntax, it can be used independently from JavaScript, and many programming environments feature the ability to read (parse) and generate JSON.</p> <p>JSON exists as a string — useful when you want to transmit data across a network. It needs to be converted to a native JavaScript object when you want to access the data. This is not a big issue — JavaScript provides a global <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JSON</a> object that has methods available for converting between the two.</p> <div class="notecard note"> <p><strong>Note:</strong> Converting a string to a native object is called <em>deserialization</em>, while converting a native object to a string so it can be transmitted across the network is called <em>serialization</em>.</p> </div> <p>A JSON string can be stored in its own file, which is basically just a text file with an extension of <code>.json</code>, and a <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Glossary/MIME_type?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MIME type</a> of <code>application/json</code>.</p> </div> </section> <section aria-labelledby="json_structure"> <h3 id="json_structure"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#json_structure">JSON structure</a></h3> <div class="section-content"> <p>As described above, JSON is a string whose format very much resembles JavaScript object literal format. You can include the same basic data types inside JSON as you can in a standard JavaScript object — strings, numbers, arrays, booleans, and other object literals. This allows you to construct a data hierarchy, like so:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">json</span> </div> <pre class="brush: json notranslate"><code>{ "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" ] } ] } </code></pre> </div> <p>If we loaded this string into a JavaScript program and parsed it into a variable called <code>superHeroes</code> for example, we could then access the data inside it using the same dot/bracket notation we looked at in the <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript object basics</a> article. For example:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>superHeroes.homeTown; superHeroes["active"]; </code></pre> </div> <p>To access data further down the hierarchy, you have to chain the required property names and array indexes together. For example, to access the third superpower of the second hero listed in the members list, you'd do this:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>superHeroes["members"][1]["powers"][2]; </code></pre> </div> <ol> <li>First, we have the variable name — <code>superHeroes</code>.</li> <li>Inside that, we want to access the <code>members</code> property, so we use <code>["members"]</code>.</li> <li><code>members</code> contains an array populated by objects. We want to access the second object inside the array, so we use <code>[1]</code>.</li> <li>Inside this object, we want to access the <code>powers</code> property, so we use <code>["powers"]</code>.</li> <li>Inside the <code>powers</code> property is an array containing the selected hero's superpowers. We want the third one, so we use <code>[2]</code>.</li> </ol> <div class="notecard note"> <p><strong>Note:</strong> We've made the JSON seen above available inside a variable in our <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://mdn.github.io/learning-area/javascript/oojs/json/JSONTest.html" class="external" target="_blank">JSONTest.html</a> example (see the <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/JSONTest.html" class="external" target="_blank">source code</a>). Try loading this up and then accessing data inside the variable via your browser's JavaScript console.</p> </div> </div> </section> <section aria-labelledby="arrays_as_json"> <h3 id="arrays_as_json"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#arrays_as_json">Arrays as JSON</a></h3> <div class="section-content"> <p>Above we mentioned that JSON text basically looks like a JavaScript object inside a string. We can also convert arrays to/from JSON. Below is also valid JSON, for example:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">json</span> </div> <pre class="brush: json notranslate"><code>[ { "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" ] } ] </code></pre> </div> <p>The above is perfectly valid JSON. You'd just have to access array items (in its parsed version) by starting with an array index, for example <code>[0]["powers"][0]</code>.</p> </div> </section> <section aria-labelledby="other_notes"> <h3 id="other_notes"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#other_notes">Other notes</a></h3> <div class="section-content"> <ul> <li>JSON is purely a string with a specified data format — it contains only properties, no methods.</li> <li>JSON requires double quotes to be used around strings and property names. Single quotes are not valid other than surrounding the entire JSON string.</li> <li>Even a single misplaced comma or colon can cause a JSON file to go wrong, and not work. You should be careful to validate any data you are attempting to use (although computer-generated JSON is less likely to include errors, as long as the generator program is working correctly). You can validate JSON using an application like <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://jsonlint.com/" class="external" target="_blank">JSONLint</a>.</li> <li>JSON can actually take the form of any data type that is valid for inclusion inside JSON, not just arrays or objects. So for example, a single string or number would be valid JSON.</li> <li>Unlike in JavaScript code in which object properties may be unquoted, in JSON only quoted strings may be used as properties.</li> </ul> </div> </section> <section aria-labelledby="active_learning_working_through_a_json_example"> <h2 id="active_learning_working_through_a_json_example"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#active_learning_working_through_a_json_example">Active learning: Working through a JSON example</a></h2> <div class="section-content"> <p>So, let's work through an example to show how we could make use of some JSON formatted data on a website.</p> </div> </section> <section aria-labelledby="getting_started"> <h3 id="getting_started"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#getting_started">Getting started</a></h3> <div class="section-content"> <p>To begin with, make local copies of our <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/heroes.html" class="external" target="_blank">heroes.html</a> and <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/style.css" class="external" target="_blank">style.css</a> files. The latter contains some simple CSS to style our page, while the former contains some very simple body HTML, plus a <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/HTML/Element/script?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code><script></code></a> element to contain the JavaScript code we will be writing in this exercise:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">html</span> </div> <pre class="brush: html notranslate"><code><header> ... </header> <section> ... </section> <script> ... </script> </code></pre> </div> <p>We have made our JSON data available on our GitHub, at <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json" class="external" target="_blank">https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json</a>.</p> <p>We are going to load the JSON into our script, and use some nifty DOM manipulation to display it, like this:</p> <p><img src="/en-US/docs/Learn/JavaScript/Objects/JSON/json-superheroes.png" alt="Image of a document titled "Super hero squad" (in a fancy font) and subtitled "Hometown: Metro City // Formed: 2016". Three columns below the heading are titled "Molecule Man", "Madame Uppercut", and "Eternal Flame", respectively. Each column lists the hero's secret identity name, age, and superpowers." width="839" height="535" loading="lazy"></p> </div> </section> <section aria-labelledby="top-level_function"> <h3 id="top-level_function"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#top-level_function">Top-level function</a></h3> <div class="section-content"> <p>The top-level function looks like this:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>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); } </code></pre> </div> <p>To obtain the JSON, we use an API called <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Fetch_API?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Fetch</a>. This API allows us to make network requests to retrieve resources from a server via JavaScript (e.g. images, text, JSON, even HTML snippets), meaning that we can update small sections of content without having to reload the entire page.</p> <p>In our function, the first four lines use the Fetch API to fetch the JSON from the server:</p> <ul> <li>we declare the <code>requestURL</code> variable to store the GitHub URL</li> <li>we use the URL to initialize a new <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Request?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>Request</code></a> object.</li> <li>we make the network request using the <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Window/fetch?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" title="fetch()"><code>fetch()</code></a> function, and this returns a <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Response?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>Response</code></a> object</li> <li>we retrieve the response as JSON using the <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Response/json?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" title="json()"><code>json()</code></a> function of the <code>Response</code> object.</li> </ul> <div class="notecard note"> <p><strong>Note:</strong> The <code>fetch()</code> API is <strong>asynchronous</strong>. We'll learn a lot about asynchronous functions in <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Asynchronous?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">the next module</a>, but for now, we'll just say that we need to add the keyword <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Statements/async_function?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>async</code></a> before the name of the function that uses the fetch API, and add the keyword <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Operators/await?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>await</code></a> before the calls to any asynchronous functions.</p> </div> <p>After all that, the <code>superHeroes</code> variable will contain the JavaScript object based on the JSON. We are then passing that object to two function calls — the first one fills the <code><header></code> with the correct data, while the second one creates an information card for each hero on the team, and inserts it into the <code><section></code>.</p> </div> </section> <section aria-labelledby="populating_the_header"> <h3 id="populating_the_header"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#populating_the_header">Populating the header</a></h3> <div class="section-content"> <p>Now that we've retrieved the JSON data and converted it into a JavaScript object, let's make use of it by writing the two functions we referenced above. First of all, add the following function definition below the previous code:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>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); } </code></pre> </div> <p>Here we first create an <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/HTML/Element/Heading_Elements?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">h1</a> element with <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Document/createElement?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>createElement()</code></a>, set its <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Node/textContent?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>textContent</code></a> to equal the <code>squadName</code> property of the object, then append it to the header using <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Node/appendChild?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>appendChild()</code></a>. We then do a very similar operation with a paragraph: create it, set its text content and append it to the header. The only difference is that its text is set to a <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Template_literals?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">template literal</a> containing both the <code>homeTown</code> and <code>formed</code> properties of the object.</p> </div> </section> <section aria-labelledby="creating_the_hero_information_cards"> <h3 id="creating_the_hero_information_cards"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#creating_the_hero_information_cards">Creating the hero information cards</a></h3> <div class="section-content"> <p>Next, add the following function at the bottom of the code, which creates and displays the superhero cards:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>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); } } </code></pre> </div> <p>To start with, we store the <code>members</code> property of the JavaScript object in a new variable. This array contains multiple objects that contain the information for each hero.</p> <p>Next, we use a <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Building_blocks/Looping_code?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#the_for...of_loop">for...of loop</a> to loop through each object in the array. For each one, we:</p> <ol> <li>Create several new elements: an <code><article></code>, an <code><h2></code>, three <code><p></code>s, and a <code><ul></code>.</li> <li>Set the <code><h2></code> to contain the current hero's <code>name</code>.</li> <li>Fill the three paragraphs with their <code>secretIdentity</code>, <code>age</code>, and a line saying "Superpowers:" to introduce the information in the list.</li> <li>Store the <code>powers</code> property in another new constant called <code>superPowers</code> — this contains an array that lists the current hero's superpowers.</li> <li>Use another <code>for...of</code> loop to loop through the current hero's superpowers — for each one we create an <code><li></code> element, put the superpower inside it, then put the <code>listItem</code> inside the <code><ul></code> element (<code>myList</code>) using <code>appendChild()</code>.</li> <li>The very last thing we do is to append the <code><h2></code>, <code><p></code>s, and <code><ul></code> inside the <code><article></code> (<code>myArticle</code>), then append the <code><article></code> inside the <code><section></code>. The order in which things are appended is important, as this is the order they will be displayed inside the HTML.</li> </ol> <div class="notecard note"> <p><strong>Note:</strong> If you are having trouble getting the example to work, try referring to our <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/heroes-finished.html" class="external" target="_blank">heroes-finished.html</a> source code (see it <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://mdn.github.io/learning-area/javascript/oojs/json/heroes-finished.html" class="external" target="_blank">running live</a> also.)</p> </div> <div class="notecard note"> <p><strong>Note:</strong> If you are having trouble following the dot/bracket notation we are using to access the JavaScript object, it can help to have the <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json" class="external" target="_blank">superheroes.json</a> file open in another tab or your text editor, and refer to it as you look at our JavaScript. You should also refer back to our <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Basics?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JavaScript object basics</a> article for more information on dot and bracket notation.</p> </div> </div> </section> <section aria-labelledby="calling_the_top-level_function"> <h3 id="calling_the_top-level_function"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#calling_the_top-level_function">Calling the top-level function</a></h3> <div class="section-content"> <p>Finally, we need to call our top-level <code>populate()</code> function:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>populate(); </code></pre> </div> </div> </section> <section aria-labelledby="converting_between_objects_and_text"> <h2 id="converting_between_objects_and_text"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#converting_between_objects_and_text">Converting between objects and text</a></h2> <div class="section-content"> <p>The above example was simple in terms of accessing the JavaScript object, because we converted the network response directly into a JavaScript object using <code>response.json()</code>.</p> <p>But sometimes we aren't so lucky — sometimes we receive a raw JSON string, and we need to convert it to an object ourselves. And when we want to send a JavaScript object across the network, we need to convert it to JSON (a string) before sending it. Luckily, these two problems are so common in web development that a built-in <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JSON</a> object is available in browsers, which contains the following two methods:</p> <ul> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>parse()</code></a>: Accepts a JSON string as a parameter, and returns the corresponding JavaScript object.</li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><code>stringify()</code></a>: Accepts an object as a parameter, and returns the equivalent JSON string.</li> </ul> <p>You can see the first one in action in our <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://mdn.github.io/learning-area/javascript/oojs/json/heroes-finished-json-parse.html" class="external" target="_blank">heroes-finished-json-parse.html</a> example (see the <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/heroes-finished-json-parse.html" class="external" target="_blank">source code</a>) — this does exactly the same thing as the example we built up earlier, except that:</p> <ul> <li>we retrieve the response as text rather than JSON, by calling the <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Response/text?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" title="text()"><code>text()</code></a> method of the response</li> <li>we then use <code>parse()</code> to convert the text to a JavaScript object.</li> </ul> <p>The key snippet of code is here:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>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); } </code></pre> </div> <p>As you might guess, <code>stringify()</code> works the opposite way. Try entering the following lines into your browser's JavaScript console one by one to see it in action:</p> <div class="code-example"> <div class="example-header"> <span class="language-name">js</span> </div> <pre class="brush: js notranslate"><code>let myObj = { name: "Chris", age: 38 }; myObj; let myString = JSON.stringify(myObj); myString; </code></pre> </div> <p>Here we're creating a JavaScript object, then checking what it contains, then converting it to a JSON string using <code>stringify()</code> — saving the return value in a new variable — then checking it again.</p> </div> </section> <section aria-labelledby="test_your_skills!"> <h2 id="test_your_skills!"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#test_your_skills!">Test your skills!</a></h2> <div class="section-content"> <p>You've reached the end of this article, but can you remember the most important information? You can find some further tests to verify that you've retained this information before you move on — see <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Test_your_skills:_JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Test your skills: JSON</a>.</p> </div> </section> <section aria-labelledby="summary"> <h2 id="summary"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#summary">Summary</a></h2> <div class="section-content"> <p>In this article, we've given you a simple guide to using JSON in your programs, including how to create and parse JSON, and how to access data locked inside it. In the next article, we'll begin looking at object-oriented JavaScript.</p> </div> </section> <section aria-labelledby="see_also"> <h2 id="see_also"><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB#see_also">See also</a></h2> <div class="section-content"> <ul> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">JSON reference</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Fetch_API?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Fetch API overview</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/API/Fetch_API/Using_Fetch?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Using Fetch</a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/docs/Web/HTTP/Methods?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">HTTP request methods</a></li> <li><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://json.org/" class="external" target="_blank">Official JSON website with link to ECMA standard</a></li> </ul> <ul class="prev-next"> <li><a class="button secondary" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><span class="button-wrap"> Previous </span></a></li> <li><a class="button secondary" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><span class="button-wrap"> Overview: Introducing JavaScript objects</span></a></li> <li><a class="button secondary" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/Object_building_practice?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB"><span class="button-wrap"> Next </span></a></li> </ul> </div> </section> </article> <aside class="article-footer"> <div class="article-footer-inner"> <div class="svg-container"> <svg xmlns="http://www.w3.org/2000/svg" width="162" height="162" viewbox="0 0 162 162" fill="none" role="none"> <mask id="b" fill="#fff"> <path d="M97.203 47.04c8.113-7.886 18.004-13.871 28.906-17.492a78 78 0 0 1 33.969-3.39c11.443 1.39 22.401 5.295 32.024 11.411s17.656 14.28 23.476 23.86c5.819 9.579 9.269 20.318 10.083 31.385a69.85 69.85 0 0 1-5.387 32.44c-4.358 10.272-11.115 19.443-19.747 26.801-8.632 7.359-18.908 12.709-30.034 15.637l-6.17-21.698c7.666-2.017 14.746-5.703 20.694-10.773 5.948-5.071 10.603-11.389 13.606-18.467a48.14 48.14 0 0 0 3.712-22.352c-.561-7.625-2.938-15.025-6.948-21.625s-9.544-12.226-16.175-16.44-14.181-6.904-22.065-7.863a53.75 53.75 0 0 0-23.405 2.336c-7.513 2.495-14.327 6.62-19.918 12.053z"></path> </mask><path stroke="url(#a)" stroke-dasharray="6, 6" stroke-width="2" d="M97.203 47.04c8.113-7.886 18.004-13.871 28.906-17.492a78 78 0 0 1 33.969-3.39c11.443 1.39 22.401 5.295 32.024 11.411s17.656 14.28 23.476 23.86c5.819 9.579 9.269 20.318 10.083 31.385a69.85 69.85 0 0 1-5.387 32.44c-4.358 10.272-11.115 19.443-19.747 26.801-8.632 7.359-18.908 12.709-30.034 15.637l-6.17-21.698c7.666-2.017 14.746-5.703 20.694-10.773 5.948-5.071 10.603-11.389 13.606-18.467a48.14 48.14 0 0 0 3.712-22.352c-.561-7.625-2.938-15.025-6.948-21.625s-9.544-12.226-16.175-16.44-14.181-6.904-22.065-7.863a53.75 53.75 0 0 0-23.405 2.336c-7.513 2.495-14.327 6.62-19.918 12.053z" mask="url(#b)" style="stroke:url(#a)" transform="translate(-63.992 -25.587)"></path><ellipse cx="8.066" cy="111.597" fill="var(--background-tertiary)" rx="53.677" ry="53.699" transform="matrix(.71707 -.697 .7243 .6895 0 0)"></ellipse><g clip-path="url(#c)" transform="translate(-63.992 -25.587)"> <path fill="#9abff5" d="m144.256 137.379 32.906 12.434a4.41 4.41 0 0 1 2.559 5.667l-9.326 24.679a4.41 4.41 0 0 1-5.667 2.559l-8.226-3.108-2.332 6.17c-.466 1.233-.375 1.883-1.609 1.417l-2.253-.527c-.411-.155-.95-.594-1.206-1.161l-4.734-10.484-12.545-4.741a4.41 4.41 0 0 1-2.559-5.667l9.325-24.679a4.41 4.41 0 0 1 5.667-2.559m9.961 29.617 8.227 3.108 3.264-8.638-.498-6.768-4.113-1.555.548 7.258-4.319-1.632zm-12.339-4.663 8.226 3.108 3.264-8.637-.498-6.769-4.113-1.554.548 7.257-4.319-1.632z"></path> </g><g clip-path="url(#d)" transform="translate(-63.992 -25.587)"> <path fill="#81b0f3" d="M135.35 60.136 86.67 41.654c-3.346-1.27-7.124.428-8.394 3.775L64.414 81.938c-1.27 3.347.428 7.125 3.774 8.395l12.17 4.62-3.465 9.128c-.693 1.826-1.432 2.457.394 3.15l3.014 1.625c.609.231 1.637.274 2.477-.104l15.53-6.983 18.56 7.047c3.346 1.27 7.124-.428 8.395-3.775l13.862-36.51c1.27-3.346-.428-7.124-3.775-8.395M95.261 83.207l-12.17-4.62 4.852-12.779 7.19-7.017 6.085 2.31-7.725 7.51 6.389 2.426zm18.255 6.93-12.17-4.62 4.852-12.778 7.189-7.017 6.085 2.31-7.725 7.51 6.39 2.426z"></path> </g><defs> <clippath id="c"> <path fill="#fff" d="m198.638 146.586-65.056-24.583-24.583 65.057 65.056 24.582z"></path> </clippath> <clippath id="d"> <path fill="#fff" d="m66.438 14.055 96.242 36.54-36.54 96.243-96.243-36.54z"></path> </clippath> <lineargradient id="a" x1="97.203" x2="199.995" y1="47.04" y2="152.793" gradientunits="userSpaceOnUse"> <stop stop-color="#086DFC"></stop> <stop offset="0.246" stop-color="#2C81FA"></stop> <stop offset="0.516" stop-color="#5497F8"></stop> <stop offset="0.821" stop-color="#80B0F6"></stop> <stop offset="1" stop-color="#9ABFF5"></stop> </lineargradient> </defs> </svg> </div> <h2>Help improve MDN</h2> <fieldset class="feedback"> <label>Was this page helpful to you?</label> <div class="button-container"> <button type="button" class="button primary has-icon yes"><span class="button-wrap"><span class="icon icon-thumbs-up "></span>Yes</span></button><button type="button" class="button primary has-icon no"><span class="button-wrap"><span class="icon icon-thumbs-down "></span>No</span></button> </div> </fieldset><a class="contribute" href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/content/blob/main/CONTRIBUTING.md" title="This will take you to our contribution guidelines on GitHub." target="_blank" rel="noopener noreferrer">Learn how to contribute</a>. <p class="last-modified-date">This page was last modified on<!-- --> <time datetime="2024-08-07T22:02:28.000Z">Aug 7, 2024</time> by<!-- --> <a href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn/JavaScript/Objects/JSON/contributors.txt?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" rel="nofollow">MDN contributors</a>.</p> <div id="on-github" class="on-github"> <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/content/blob/main/files/en-us/learn/javascript/objects/json/index.md?plain%3D1" title="Folder: en-us/learn/javascript/objects/json (Opens in a new tab)" target="_blank" rel="noopener noreferrer">View this page on GitHub</a> <!-- -->•<!-- --> <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/content/issues/new?template%3Dpage-report.yml%26mdn-url%3Dhttps%253A%252F%252Fdeveloper.mozilla.org%252Fen-US%252Fdocs%252FLearn%252FJavaScript%252FObjects%252FJSON%26metadata%3D%253C%2521--%2BDo%2Bnot%2Bmake%2Bchanges%2Bbelow%2Bthis%2Bline%2B--%253E%250A%253Cdetails%253E%250A%253Csummary%253EPage%2Breport%2Bdetails%253C%252Fsummary%253E%250A%250A*%2BFolder%253A%2B%2560en-us%252Flearn%252Fjavascript%252Fobjects%252Fjson%2560%250A*%2BMDN%2BURL%253A%2Bhttps%253A%252F%252Fdeveloper.mozilla.org%252Fen-US%252Fdocs%252FLearn%252FJavaScript%252FObjects%252FJSON%250A*%2BGitHub%2BURL%253A%2Bhttps%253A%252F%252Fgithub.com%252Fmdn%252Fcontent%252Fblob%252Fmain%252Ffiles%252Fen-us%252Flearn%252Fjavascript%252Fobjects%252Fjson%252Findex.md%250A*%2BLast%2Bcommit%253A%2Bhttps%253A%252F%252Fgithub.com%252Fmdn%252Fcontent%252Fcommit%252Fd71da812ee94c20658cb1916a123a42254ea545c%250A*%2BDocument%2Blast%2Bmodified%253A%2B2024-08-07T22%253A02%253A28.000Z%250A%250A%253C%252Fdetails%253E" title="This will take you to GitHub to file a new issue." target="_blank" rel="noopener noreferrer">Report a problem with this content</a> </div> </div> </aside> </main> </div> </div> <footer id="nav-footer" class="page-footer"> <div class="page-footer-grid"> <div class="page-footer-logo-col"> <a href="https://developer-mozilla-org.translate.goog/?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" class="mdn-footer-logo" aria-label="MDN homepage"> <svg width="48" height="17" viewbox="0 0 48 17" fill="none" xmlns="http://www.w3.org/2000/svg"> <title id="mdn-footer-logo-svg">MDN logo</title><path d="M20.04 16.512H15.504V10.416C15.504 9.488 15.344 8.824 15.024 8.424C14.72 8.024 14.264 7.824 13.656 7.824C12.92 7.824 12.384 8.064 12.048 8.544C11.728 9.024 11.568 9.64 11.568 10.392V14.184H13.008V16.512H8.472V10.416C8.472 9.488 8.312 8.824 7.992 8.424C7.688 8.024 7.232 7.824 6.624 7.824C5.872 7.824 5.336 8.064 5.016 8.544C4.696 9.024 4.536 9.64 4.536 10.392V14.184H6.6V16.512H0V14.184H1.44V8.04H0.024V5.688H4.536V7.32C5.224 6.088 6.32 5.472 7.824 5.472C8.608 5.472 9.328 5.664 9.984 6.048C10.64 6.432 11.096 7.016 11.352 7.8C11.992 6.248 13.168 5.472 14.88 5.472C15.856 5.472 16.72 5.776 17.472 6.384C18.224 6.992 18.6 7.936 18.6 9.216V14.184H20.04V16.512Z" fill="currentColor"></path><path d="M33.6714 16.512H29.1354V14.496C28.8314 15.12 28.3834 15.656 27.7914 16.104C27.1994 16.536 26.4154 16.752 25.4394 16.752C24.0154 16.752 22.8954 16.264 22.0794 15.288C21.2634 14.312 20.8554 12.984 20.8554 11.304C20.8554 9.688 21.2554 8.312 22.0554 7.176C22.8554 6.04 24.0634 5.472 25.6794 5.472C26.5594 5.472 27.2794 5.648 27.8394 6C28.3994 6.352 28.8314 6.8 29.1354 7.344V2.352H26.9754V0H32.2314V14.184H33.6714V16.512ZM29.1354 11.04V10.776C29.1354 9.88 28.8954 9.184 28.4154 8.688C27.9514 8.176 27.3674 7.92 26.6634 7.92C25.9754 7.92 25.3674 8.176 24.8394 8.688C24.3274 9.2 24.0714 10.008 24.0714 11.112C24.0714 12.152 24.3114 12.944 24.7914 13.488C25.2714 14.032 25.8394 14.304 26.4954 14.304C27.3114 14.304 27.9514 13.96 28.4154 13.272C28.8954 12.584 29.1354 11.84 29.1354 11.04Z" fill="currentColor"></path><path d="M47.9589 16.512H41.9829V14.184H43.4229V10.416C43.4229 9.488 43.2629 8.824 42.9429 8.424C42.6389 8.024 42.1829 7.824 41.5749 7.824C40.8389 7.824 40.2709 8.056 39.8709 8.52C39.4709 8.968 39.2629 9.56 39.2469 10.296V14.184H40.6869V16.512H34.7109V14.184H36.1509V8.04H34.5909V5.688H39.2469V7.344C39.9669 6.096 41.1269 5.472 42.7269 5.472C43.7509 5.472 44.6389 5.776 45.3909 6.384C46.1429 6.992 46.5189 7.936 46.5189 9.216V14.184H47.9589V16.512Z" fill="currentColor"></path> </svg></a> <p>Your blueprint for a better internet.</p> <ul class="social-icons"> <li><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://mastodon.social/@mdn" target="_blank" rel="me noopener noreferrer"><span class="icon icon-mastodon"></span><span class="visually-hidden">MDN on Mastodon</span></a></li> <li><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://twitter.com/mozdevnet" target="_blank" rel="noopener noreferrer"><span class="icon icon-twitter-x"></span><span class="visually-hidden">MDN on X (formerly Twitter)</span></a></li> <li><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://github.com/mdn/" target="_blank" rel="noopener noreferrer"><span class="icon icon-github-mark-small"></span><span class="visually-hidden">MDN on GitHub</span></a></li> <li><a href="https://developer-mozilla-org.translate.goog/en-US/blog/rss.xml?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" target="_blank"><span class="icon icon-feed"></span><span class="visually-hidden">MDN Blog RSS Feed</span></a></li> </ul> </div> <div class="page-footer-nav-col-1"> <h2 class="footer-nav-heading">MDN</h2> <ul class="footer-nav-list"> <li class="footer-nav-item"><a href="https://developer-mozilla-org.translate.goog/en-US/about?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">About</a></li> <li class="footer-nav-item"><a href="https://developer-mozilla-org.translate.goog/en-US/blog/?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Blog</a></li> <li class="footer-nav-item"><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://www.mozilla.org/en-US/careers/listings/?team%3DProdOps" target="_blank" rel="noopener noreferrer">Careers</a></li> <li class="footer-nav-item"><a href="https://developer-mozilla-org.translate.goog/en-US/advertising?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Advertise with us</a></li> </ul> </div> <div class="page-footer-nav-col-2"> <h2 class="footer-nav-heading">Support</h2> <ul class="footer-nav-list"> <li class="footer-nav-item"><a class="footer-nav-link" href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://support.mozilla.org/products/mdn-plus">Product help</a></li> <li class="footer-nav-item"><a class="footer-nav-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/MDN/Community/Issues?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Report an issue</a></li> </ul> </div> <div class="page-footer-nav-col-3"> <h2 class="footer-nav-heading">Our communities</h2> <ul class="footer-nav-list"> <li class="footer-nav-item"><a class="footer-nav-link" href="https://developer-mozilla-org.translate.goog/en-US/community?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MDN Community</a></li> <li class="footer-nav-item"><a class="footer-nav-link" href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://discourse.mozilla.org/c/mdn/236" target="_blank" rel="noopener noreferrer">MDN Forum</a></li> <li class="footer-nav-item"><a class="footer-nav-link" href="https://developer-mozilla-org.translate.goog/discord?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB" target="_blank" rel="noopener noreferrer">MDN Chat</a></li> </ul> </div> <div class="page-footer-nav-col-4"> <h2 class="footer-nav-heading">Developers</h2> <ul class="footer-nav-list"> <li class="footer-nav-item"><a class="footer-nav-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Web?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Web Technologies</a></li> <li class="footer-nav-item"><a class="footer-nav-link" href="https://developer-mozilla-org.translate.goog/en-US/docs/Learn?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">Learn Web Development</a></li> <li class="footer-nav-item"><a class="footer-nav-link" href="https://developer-mozilla-org.translate.goog/en-US/plus?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">MDN Plus</a></li> <li class="footer-nav-item"><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://hacks.mozilla.org/" target="_blank" rel="noopener noreferrer">Hacks Blog</a></li> </ul> </div> <div class="page-footer-moz"> <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://www.mozilla.org/" class="footer-moz-logo-link" target="_blank" rel="noopener noreferrer"> <svg width="112" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"> <title id="mozilla-footer-logo-svg">Mozilla logo</title><path d="M41.753 14.218c-2.048 0-3.324 1.522-3.324 4.157 0 2.423 1.119 4.286 3.29 4.286 2.082 0 3.447-1.678 3.447-4.347 0-2.826-1.522-4.096-3.413-4.096Zm54.89 7.044c0 .901.437 1.618 1.645 1.618 1.427 0 2.949-1.024 3.044-3.352-.649-.095-1.365-.185-2.02-.185-1.426-.005-2.668.397-2.668 1.92Z" fill="currentColor"></path><path d="M0 0v32h111.908V0H0Zm32.56 25.426h-5.87v-7.884c0-2.423-.806-3.352-2.39-3.352-1.924 0-2.702 1.365-2.702 3.324v4.868h1.864v3.044h-5.864v-7.884c0-2.423-.806-3.352-2.39-3.352-1.924 0-2.702 1.365-2.702 3.324v4.868h2.669v3.044H6.642v-3.044h1.863v-7.918H6.642V11.42h5.864v2.11c.839-1.489 2.3-2.39 4.252-2.39 2.02 0 3.878.963 4.566 3.01.778-1.862 2.361-3.01 4.566-3.01 2.512 0 4.812 1.522 4.812 4.84v6.402h1.863v3.044h-.005Zm9.036.307c-4.314 0-7.296-2.635-7.296-7.106 0-4.096 2.484-7.481 7.514-7.481s7.481 3.38 7.481 7.29c0 4.472-3.228 7.297-7.699 7.297Zm22.578-.307H51.942l-.403-2.11 7.7-8.846h-4.376l-.621 2.17-2.888-.313.498-4.907h12.294l.313 2.11-7.767 8.852h4.533l.654-2.172 3.167.308-.872 4.908Zm7.99 0h-4.191v-5.03h4.19v5.03Zm0-8.976h-4.191v-5.03h4.19v5.03Zm2.618 8.976 6.054-21.358h3.945l-6.054 21.358h-3.945Zm8.136 0 6.048-21.358h3.945l-6.054 21.358h-3.939Zm21.486.307c-1.863 0-2.887-1.085-3.072-2.792-.805 1.427-2.232 2.792-4.498 2.792-2.02 0-4.314-1.085-4.314-4.006 0-3.447 3.323-4.253 6.518-4.253.778 0 1.584.034 2.3.124v-.465c0-1.427-.034-3.133-2.3-3.133-.84 0-1.488.061-2.143.402l-.453 1.578-3.195-.34.549-3.224c2.45-.996 3.692-1.27 5.992-1.27 3.01 0 5.556 1.55 5.556 4.75v6.083c0 .805.314 1.085.963 1.085.184 0 .375-.034.587-.095l.034 2.11a5.432 5.432 0 0 1-2.524.654Z" fill="currentColor"></path> </svg></a> <ul class="footer-moz-list"> <li class="footer-moz-item"><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://www.mozilla.org/privacy/websites/" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Website Privacy Notice</a></li> <li class="footer-moz-item"><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://www.mozilla.org/privacy/websites/%23cookies" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Cookies</a></li> <li class="footer-moz-item"><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://www.mozilla.org/about/legal/terms/mozilla" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Legal</a></li> <li class="footer-moz-item"><a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://www.mozilla.org/about/governance/policies/participation/" class="footer-moz-link" target="_blank" rel="noopener noreferrer">Community Participation Guidelines</a></li> </ul> </div> <div class="page-footer-legal"> <p id="license" class="page-footer-legal-text">Visit<!-- --> <a href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://www.mozilla.org" target="_blank" rel="noopener noreferrer">Mozilla Corporation’s</a> <!-- -->not-for-profit parent, the<!-- --> <a target="_blank" rel="noopener noreferrer" href="https://translate.google.com/website?sl=pl&tl=fr&hl=en-GB&u=https://foundation.mozilla.org/">Mozilla Foundation</a>.<br> Portions of this content are ©1998–<!-- -->2024<!-- --> by individual mozilla.org contributors. Content available under<!-- --> <a href="https://developer-mozilla-org.translate.goog/en-US/docs/MDN/Writing_guidelines/Attrib_copyright_license?_x_tr_sl=pl&_x_tr_tl=fr&_x_tr_hl=en-GB">a Creative Commons license</a>.</p> </div> </div> </footer> </div> <script type="application/json" id="hydration">{"url":"/en-US/docs/Learn/JavaScript/Objects/JSON","doc":{"body":[{"type":"prose","value":{"id":null,"title":null,"isH3":false,"content":"<ul class=\"prev-next\"><li><a class=\"button secondary\" href=\"/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript\"><span class=\"button-wrap\"> Previous </span></a></li><li><a class=\"button secondary\" href=\"/en-US/docs/Learn/JavaScript/Objects\"><span class=\"button-wrap\"> Overview: Introducing JavaScript objects</span></a></li><li><a class=\"button secondary\" href=\"/en-US/docs/Learn/JavaScript/Objects/Object_building_practice\"><span class=\"button-wrap\"> Next </span></a></li></ul>\n<p>JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax. It is commonly used for transmitting data in web applications (e.g., sending some data from the server to the client, so it can be displayed on a web page, or vice versa). You'll come across it quite often, so in this article, we give you all you need to work with JSON using JavaScript, including parsing JSON so you can access data within it, and creating JSON.</p>\n<figure class=\"table-container\"><table>\n <tbody>\n <tr>\n <th scope=\"row\">Prerequisites:</th>\n <td>\n A basic understanding of HTML and CSS, familiarity with JavaScript basics (see <a href=\"/en-US/docs/Learn/JavaScript/First_steps\">First steps</a> and <a href=\"/en-US/docs/Learn/JavaScript/Building_blocks\">Building blocks</a>) and OOJS basics (see <a href=\"/en-US/docs/Learn/JavaScript/Objects/Basics\">Introduction to objects</a>).\n </td>\n </tr>\n <tr>\n <th scope=\"row\">Objective:</th>\n <td>\n To understand how to work with data stored in JSON, and create your own JSON strings.\n </td>\n </tr>\n </tbody>\n</table></figure>"}},{"type":"prose","value":{"id":"no_really_what_is_json","title":"No, really, what is JSON?","isH3":false,"content":"<p><a href=\"/en-US/docs/Glossary/JSON\">JSON</a> is a text-based data format following JavaScript object syntax, which was popularized by <a href=\"https://en.wikipedia.org/wiki/Douglas_Crockford\" class=\"external\" target=\"_blank\">Douglas Crockford</a>.\nEven though it closely resembles JavaScript object literal syntax, it can be used independently from JavaScript, and many programming environments feature the ability to read (parse) and generate JSON.</p>\n<p>JSON exists as a string — useful when you want to transmit data across a network.\nIt needs to be converted to a native JavaScript object when you want to access the data.\nThis is not a big issue — JavaScript provides a global <a href=\"/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON\">JSON</a> object that has methods available for converting between the two.</p>\n<div class=\"notecard note\">\n<p><strong>Note:</strong>\nConverting a string to a native object is called <em>deserialization</em>, while converting a native object to a string so it can be transmitted across the network is called <em>serialization</em>.</p>\n</div>\n<p>A JSON string can be stored in its own file, which is basically just a text file with an extension of <code>.json</code>, and a <a href=\"/en-US/docs/Glossary/MIME_type\">MIME type</a> of <code>application/json</code>.</p>"}},{"type":"prose","value":{"id":"json_structure","title":"JSON structure","isH3":true,"content":"<p>As described above, JSON is a string whose format very much resembles JavaScript object literal format.\nYou can include the same basic data types inside JSON as you can in a standard JavaScript object — strings, numbers, arrays, booleans, and other object literals.\nThis allows you to construct a data hierarchy, like so:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">json</span></div><pre class=\"brush: json notranslate\"><code>{\n \"squadName\": \"Super hero squad\",\n \"homeTown\": \"Metro City\",\n \"formed\": 2016,\n \"secretBase\": \"Super tower\",\n \"active\": true,\n \"members\": [\n {\n \"name\": \"Molecule Man\",\n \"age\": 29,\n \"secretIdentity\": \"Dan Jukes\",\n \"powers\": [\"Radiation resistance\", \"Turning tiny\", \"Radiation blast\"]\n },\n {\n \"name\": \"Madame Uppercut\",\n \"age\": 39,\n \"secretIdentity\": \"Jane Wilson\",\n \"powers\": [\n \"Million tonne punch\",\n \"Damage resistance\",\n \"Superhuman reflexes\"\n ]\n },\n {\n \"name\": \"Eternal Flame\",\n \"age\": 1000000,\n \"secretIdentity\": \"Unknown\",\n \"powers\": [\n \"Immortality\",\n \"Heat Immunity\",\n \"Inferno\",\n \"Teleportation\",\n \"Interdimensional travel\"\n ]\n }\n ]\n}\n</code></pre></div>\n<p>If we loaded this string into a JavaScript program and parsed it into a variable called <code>superHeroes</code> for example, we could then access the data inside it using the same dot/bracket notation we looked at in the <a href=\"/en-US/docs/Learn/JavaScript/Objects/Basics\">JavaScript object basics</a> article.\nFor example:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>superHeroes.homeTown;\nsuperHeroes[\"active\"];\n</code></pre></div>\n<p>To access data further down the hierarchy, you have to chain the required property names and array indexes together. For example, to access the third superpower of the second hero listed in the members list, you'd do this:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>superHeroes[\"members\"][1][\"powers\"][2];\n</code></pre></div>\n<ol>\n<li>First, we have the variable name — <code>superHeroes</code>.</li>\n<li>Inside that, we want to access the <code>members</code> property, so we use <code>[\"members\"]</code>.</li>\n<li><code>members</code> contains an array populated by objects. We want to access the second object inside the array, so we use <code>[1]</code>.</li>\n<li>Inside this object, we want to access the <code>powers</code> property, so we use <code>[\"powers\"]</code>.</li>\n<li>Inside the <code>powers</code> property is an array containing the selected hero's superpowers. We want the third one, so we use <code>[2]</code>.</li>\n</ol>\n<div class=\"notecard note\">\n<p><strong>Note:</strong>\nWe've made the JSON seen above available inside a variable in our <a href=\"https://mdn.github.io/learning-area/javascript/oojs/json/JSONTest.html\" class=\"external\" target=\"_blank\">JSONTest.html</a> example (see the <a href=\"https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/JSONTest.html\" class=\"external\" target=\"_blank\">source code</a>).\nTry loading this up and then accessing data inside the variable via your browser's JavaScript console.</p>\n</div>"}},{"type":"prose","value":{"id":"arrays_as_json","title":"Arrays as JSON","isH3":true,"content":"<p>Above we mentioned that JSON text basically looks like a JavaScript object inside a string.\nWe can also convert arrays to/from JSON. Below is also valid JSON, for example:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">json</span></div><pre class=\"brush: json notranslate\"><code>[\n {\n \"name\": \"Molecule Man\",\n \"age\": 29,\n \"secretIdentity\": \"Dan Jukes\",\n \"powers\": [\"Radiation resistance\", \"Turning tiny\", \"Radiation blast\"]\n },\n {\n \"name\": \"Madame Uppercut\",\n \"age\": 39,\n \"secretIdentity\": \"Jane Wilson\",\n \"powers\": [\n \"Million tonne punch\",\n \"Damage resistance\",\n \"Superhuman reflexes\"\n ]\n }\n]\n</code></pre></div>\n<p>The above is perfectly valid JSON. You'd just have to access array items (in its parsed version) by starting with an array index, for example <code>[0][\"powers\"][0]</code>.</p>"}},{"type":"prose","value":{"id":"other_notes","title":"Other notes","isH3":true,"content":"<ul>\n<li>JSON is purely a string with a specified data format — it contains only properties, no methods.</li>\n<li>JSON requires double quotes to be used around strings and property names.\nSingle quotes are not valid other than surrounding the entire JSON string.</li>\n<li>Even a single misplaced comma or colon can cause a JSON file to go wrong, and not work.\nYou should be careful to validate any data you are attempting to use (although computer-generated JSON is less likely to include errors, as long as the generator program is working correctly).\nYou can validate JSON using an application like <a href=\"https://jsonlint.com/\" class=\"external\" target=\"_blank\">JSONLint</a>.</li>\n<li>JSON can actually take the form of any data type that is valid for inclusion inside JSON, not just arrays or objects.\nSo for example, a single string or number would be valid JSON.</li>\n<li>Unlike in JavaScript code in which object properties may be unquoted, in JSON only quoted strings may be used as properties.</li>\n</ul>"}},{"type":"prose","value":{"id":"active_learning_working_through_a_json_example","title":"Active learning: Working through a JSON example","isH3":false,"content":"<p>So, let's work through an example to show how we could make use of some JSON formatted data on a website.</p>"}},{"type":"prose","value":{"id":"getting_started","title":"Getting started","isH3":true,"content":"<p>To begin with, make local copies of our <a href=\"https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/heroes.html\" class=\"external\" target=\"_blank\">heroes.html</a> and <a href=\"https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/style.css\" class=\"external\" target=\"_blank\">style.css</a> files.\nThe latter contains some simple CSS to style our page, while the former contains some very simple body HTML, plus a <a href=\"/en-US/docs/Web/HTML/Element/script\"><code><script></code></a> element to contain the JavaScript code we will be writing in this exercise:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">html</span></div><pre class=\"brush: html notranslate\"><code><header>\n...\n</header>\n\n<section>\n...\n</section>\n\n<script>\n...\n</script>\n</code></pre></div>\n<p>We have made our JSON data available on our GitHub, at <a href=\"https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json\" class=\"external\" target=\"_blank\">https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json</a>.</p>\n<p>We are going to load the JSON into our script, and use some nifty DOM manipulation to display it, like this:</p>\n<p><img src=\"/en-US/docs/Learn/JavaScript/Objects/JSON/json-superheroes.png\" alt=\"Image of a document titled "Super hero squad" (in a fancy font) and subtitled "Hometown: Metro City // Formed: 2016". Three columns below the heading are titled "Molecule Man", "Madame Uppercut", and "Eternal Flame", respectively. Each column lists the hero's secret identity name, age, and superpowers.\" width=\"839\" height=\"535\" loading=\"lazy\"></p>"}},{"type":"prose","value":{"id":"top-level_function","title":"Top-level function","isH3":true,"content":"<p>The top-level function looks like this:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>async function populate() {\n const requestURL =\n \"https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json\";\n const request = new Request(requestURL);\n\n const response = await fetch(request);\n const superHeroes = await response.json();\n\n populateHeader(superHeroes);\n populateHeroes(superHeroes);\n}\n</code></pre></div>\n<p>To obtain the JSON, we use an API called <a href=\"/en-US/docs/Web/API/Fetch_API\">Fetch</a>.\nThis API allows us to make network requests to retrieve resources from a server via JavaScript (e.g. images, text, JSON, even HTML snippets), meaning that we can update small sections of content without having to reload the entire page.</p>\n<p>In our function, the first four lines use the Fetch API to fetch the JSON from the server:</p>\n<ul>\n<li>we declare the <code>requestURL</code> variable to store the GitHub URL</li>\n<li>we use the URL to initialize a new <a href=\"/en-US/docs/Web/API/Request\"><code>Request</code></a> object.</li>\n<li>we make the network request using the <a href=\"/en-US/docs/Web/API/Window/fetch\" title=\"fetch()\"><code>fetch()</code></a> function, and this returns a <a href=\"/en-US/docs/Web/API/Response\"><code>Response</code></a> object</li>\n<li>we retrieve the response as JSON using the <a href=\"/en-US/docs/Web/API/Response/json\" title=\"json()\"><code>json()</code></a> function of the <code>Response</code> object.</li>\n</ul>\n<div class=\"notecard note\">\n<p><strong>Note:</strong>\nThe <code>fetch()</code> API is <strong>asynchronous</strong>. We'll learn a lot about asynchronous functions in <a href=\"/en-US/docs/Learn/JavaScript/Asynchronous\">the next module</a>, but for now, we'll just say that we need to add the keyword <a href=\"/en-US/docs/Web/JavaScript/Reference/Statements/async_function\"><code>async</code></a> before the name of the function that uses the fetch API, and add the keyword <a href=\"/en-US/docs/Web/JavaScript/Reference/Operators/await\"><code>await</code></a> before the calls to any asynchronous functions.</p>\n</div>\n<p>After all that, the <code>superHeroes</code> variable will contain the JavaScript object based on the JSON. We are then passing that object to two function calls — the first one fills the <code><header></code> with the correct data, while the second one creates an information card for each hero on the team, and inserts it into the <code><section></code>.</p>"}},{"type":"prose","value":{"id":"populating_the_header","title":"Populating the header","isH3":true,"content":"<p>Now that we've retrieved the JSON data and converted it into a JavaScript object, let's make use of it by writing the two functions we referenced above. First of all, add the following function definition below the previous code:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>function populateHeader(obj) {\n const header = document.querySelector(\"header\");\n const myH1 = document.createElement(\"h1\");\n myH1.textContent = obj.squadName;\n header.appendChild(myH1);\n\n const myPara = document.createElement(\"p\");\n myPara.textContent = `Hometown: ${obj.homeTown} // Formed: ${obj.formed}`;\n header.appendChild(myPara);\n}\n</code></pre></div>\n<p>Here we first create an <a href=\"/en-US/docs/Web/HTML/Element/Heading_Elements\">h1</a> element with <a href=\"/en-US/docs/Web/API/Document/createElement\"><code>createElement()</code></a>, set its <a href=\"/en-US/docs/Web/API/Node/textContent\"><code>textContent</code></a> to equal the <code>squadName</code> property of the object, then append it to the header using <a href=\"/en-US/docs/Web/API/Node/appendChild\"><code>appendChild()</code></a>. We then do a very similar operation with a paragraph: create it, set its text content and append it to the header. The only difference is that its text is set to a <a href=\"/en-US/docs/Web/JavaScript/Reference/Template_literals\">template literal</a> containing both the <code>homeTown</code> and <code>formed</code> properties of the object.</p>"}},{"type":"prose","value":{"id":"creating_the_hero_information_cards","title":"Creating the hero information cards","isH3":true,"content":"<p>Next, add the following function at the bottom of the code, which creates and displays the superhero cards:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>function populateHeroes(obj) {\n const section = document.querySelector(\"section\");\n const heroes = obj.members;\n\n for (const hero of heroes) {\n const myArticle = document.createElement(\"article\");\n const myH2 = document.createElement(\"h2\");\n const myPara1 = document.createElement(\"p\");\n const myPara2 = document.createElement(\"p\");\n const myPara3 = document.createElement(\"p\");\n const myList = document.createElement(\"ul\");\n\n myH2.textContent = hero.name;\n myPara1.textContent = `Secret identity: ${hero.secretIdentity}`;\n myPara2.textContent = `Age: ${hero.age}`;\n myPara3.textContent = \"Superpowers:\";\n\n const superPowers = hero.powers;\n for (const power of superPowers) {\n const listItem = document.createElement(\"li\");\n listItem.textContent = power;\n myList.appendChild(listItem);\n }\n\n myArticle.appendChild(myH2);\n myArticle.appendChild(myPara1);\n myArticle.appendChild(myPara2);\n myArticle.appendChild(myPara3);\n myArticle.appendChild(myList);\n\n section.appendChild(myArticle);\n }\n}\n</code></pre></div>\n<p>To start with, we store the <code>members</code> property of the JavaScript object in a new variable. This array contains multiple objects that contain the information for each hero.</p>\n<p>Next, we use a <a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Looping_code#the_for...of_loop\">for...of loop</a> to loop through each object in the array. For each one, we:</p>\n<ol>\n<li>Create several new elements: an <code><article></code>, an <code><h2></code>, three <code><p></code>s, and a <code><ul></code>.</li>\n<li>Set the <code><h2></code> to contain the current hero's <code>name</code>.</li>\n<li>Fill the three paragraphs with their <code>secretIdentity</code>, <code>age</code>, and a line saying \"Superpowers:\" to introduce the information in the list.</li>\n<li>Store the <code>powers</code> property in another new constant called <code>superPowers</code> — this contains an array that lists the current hero's superpowers.</li>\n<li>Use another <code>for...of</code> loop to loop through the current hero's superpowers — for each one we create an <code><li></code> element, put the superpower inside it, then put the <code>listItem</code> inside the <code><ul></code> element (<code>myList</code>) using <code>appendChild()</code>.</li>\n<li>The very last thing we do is to append the <code><h2></code>, <code><p></code>s, and <code><ul></code> inside the <code><article></code> (<code>myArticle</code>), then append the <code><article></code> inside the <code><section></code>. The order in which things are appended is important, as this is the order they will be displayed inside the HTML.</li>\n</ol>\n<div class=\"notecard note\">\n<p><strong>Note:</strong>\nIf you are having trouble getting the example to work, try referring to our <a href=\"https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/heroes-finished.html\" class=\"external\" target=\"_blank\">heroes-finished.html</a> source code (see it <a href=\"https://mdn.github.io/learning-area/javascript/oojs/json/heroes-finished.html\" class=\"external\" target=\"_blank\">running live</a> also.)</p>\n</div>\n<div class=\"notecard note\">\n<p><strong>Note:</strong>\nIf you are having trouble following the dot/bracket notation we are using to access the JavaScript object, it can help to have the <a href=\"https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json\" class=\"external\" target=\"_blank\">superheroes.json</a> file open in another tab or your text editor, and refer to it as you look at our JavaScript.\nYou should also refer back to our <a href=\"/en-US/docs/Learn/JavaScript/Objects/Basics\">JavaScript object basics</a> article for more information on dot and bracket notation.</p>\n</div>"}},{"type":"prose","value":{"id":"calling_the_top-level_function","title":"Calling the top-level function","isH3":true,"content":"<p>Finally, we need to call our top-level <code>populate()</code> function:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>populate();\n</code></pre></div>"}},{"type":"prose","value":{"id":"converting_between_objects_and_text","title":"Converting between objects and text","isH3":false,"content":"<p>The above example was simple in terms of accessing the JavaScript object, because we converted the network response directly into a JavaScript object using <code>response.json()</code>.</p>\n<p>But sometimes we aren't so lucky — sometimes we receive a raw JSON string, and we need to convert it to an object ourselves. And when we want to send a JavaScript object across the network, we need to convert it to JSON (a string) before sending it. Luckily, these two problems are so common in web development that a built-in <a href=\"/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON\">JSON</a> object is available in browsers, which contains the following two methods:</p>\n<ul>\n<li><a href=\"/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse\"><code>parse()</code></a>: Accepts a JSON string as a parameter, and returns the corresponding JavaScript object.</li>\n<li><a href=\"/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify\"><code>stringify()</code></a>: Accepts an object as a parameter, and returns the equivalent JSON string.</li>\n</ul>\n<p>You can see the first one in action in our <a href=\"https://mdn.github.io/learning-area/javascript/oojs/json/heroes-finished-json-parse.html\" class=\"external\" target=\"_blank\">heroes-finished-json-parse.html</a> example (see the <a href=\"https://github.com/mdn/learning-area/blob/main/javascript/oojs/json/heroes-finished-json-parse.html\" class=\"external\" target=\"_blank\">source code</a>) — this does exactly the same thing as the example we built up earlier, except that:</p>\n<ul>\n<li>we retrieve the response as text rather than JSON, by calling the <a href=\"/en-US/docs/Web/API/Response/text\" title=\"text()\"><code>text()</code></a> method of the response</li>\n<li>we then use <code>parse()</code> to convert the text to a JavaScript object.</li>\n</ul>\n<p>The key snippet of code is here:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>async function populate() {\n const requestURL =\n \"https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json\";\n const request = new Request(requestURL);\n\n const response = await fetch(request);\n const superHeroesText = await response.text();\n\n const superHeroes = JSON.parse(superHeroesText);\n populateHeader(superHeroes);\n populateHeroes(superHeroes);\n}\n</code></pre></div>\n<p>As you might guess, <code>stringify()</code> works the opposite way. Try entering the following lines into your browser's JavaScript console one by one to see it in action:</p>\n<div class=\"code-example\"><div class=\"example-header\"><span class=\"language-name\">js</span></div><pre class=\"brush: js notranslate\"><code>let myObj = { name: \"Chris\", age: 38 };\nmyObj;\nlet myString = JSON.stringify(myObj);\nmyString;\n</code></pre></div>\n<p>Here we're creating a JavaScript object, then checking what it contains, then converting it to a JSON string using <code>stringify()</code> — saving the return value in a new variable — then checking it again.</p>"}},{"type":"prose","value":{"id":"test_your_skills!","title":"Test your skills!","isH3":false,"content":"<p>You've reached the end of this article, but can you remember the most important information? You can find some further tests to verify that you've retained this information before you move on — see <a href=\"/en-US/docs/Learn/JavaScript/Objects/Test_your_skills:_JSON\">Test your skills: JSON</a>.</p>"}},{"type":"prose","value":{"id":"summary","title":"Summary","isH3":false,"content":"<p>In this article, we've given you a simple guide to using JSON in your programs, including how to create and parse JSON, and how to access data locked inside it. In the next article, we'll begin looking at object-oriented JavaScript.</p>"}},{"type":"prose","value":{"id":"see_also","title":"See also","isH3":false,"content":"<ul>\n<li><a href=\"/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON\">JSON reference</a></li>\n<li><a href=\"/en-US/docs/Web/API/Fetch_API\">Fetch API overview</a></li>\n<li><a href=\"/en-US/docs/Web/API/Fetch_API/Using_Fetch\">Using Fetch</a></li>\n<li><a href=\"/en-US/docs/Web/HTTP/Methods\">HTTP request methods</a></li>\n<li><a href=\"https://json.org/\" class=\"external\" target=\"_blank\">Official JSON website with link to ECMA standard</a></li>\n</ul>\n<ul class=\"prev-next\"><li><a class=\"button secondary\" href=\"/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript\"><span class=\"button-wrap\"> Previous </span></a></li><li><a class=\"button secondary\" href=\"/en-US/docs/Learn/JavaScript/Objects\"><span class=\"button-wrap\"> Overview: Introducing JavaScript objects</span></a></li><li><a class=\"button secondary\" href=\"/en-US/docs/Learn/JavaScript/Objects/Object_building_practice\"><span class=\"button-wrap\"> Next </span></a></li></ul>"}}],"isActive":true,"isMarkdown":true,"isTranslated":false,"locale":"en-US","mdn_url":"/en-US/docs/Learn/JavaScript/Objects/JSON","modified":"2024-08-07T22:02:28.000Z","native":"English (US)","noIndexing":false,"other_translations":[{"locale":"de","title":"Arbeiten mit JSON","native":"Deutsch"},{"locale":"es","title":"Trabajando con JSON","native":"Español"},{"locale":"fr","title":"Manipuler des données JSON","native":"Français"},{"locale":"ja","title":"JSON の操作","native":"日本語"},{"locale":"ko","title":"JSON으로 작업하기","native":"한국어"},{"locale":"pt-BR","title":"Trabalhando com JSON","native":"Português (do Brasil)"},{"locale":"ru","title":"Работа с JSON","native":"Русский"},{"locale":"zh-CN","title":"使用 JSON","native":"中文 (简体)"},{"locale":"zh-TW","title":"使用 JSON 資料","native":"正體中文 (繁體)"}],"pageTitle":"Working with JSON - Learn web development | MDN","parents":[{"uri":"/en-US/docs/Learn","title":"Guides"},{"uri":"/en-US/docs/Learn/JavaScript","title":"JavaScript — Dynamic client-side scripting"},{"uri":"/en-US/docs/Learn/JavaScript/Objects","title":"Introducing JavaScript objects"},{"uri":"/en-US/docs/Learn/JavaScript/Objects/JSON","title":"Working with JSON"}],"popularity":null,"short_title":"Working with JSON","sidebarHTML":"<ol><li class=\"section\"><a href=\"/en-US/docs/Learn/Getting_started_with_the_web\">Complete beginners start here!</a></li><li class=\"toggle\"><details><summary>Getting started with the web</summary><ol><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web\">Getting started with the web</a></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/Installing_basic_software\">Installing basic software</a></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like\">What will your website look like?</a><abbr class=\"icon icon-deprecated\" title=\"Deprecated. Not for use in new websites.\">\n<span class=\"visually-hidden\">Deprecated</span>\n</abbr></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/Dealing_with_files\">Dealing with files</a></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/HTML_basics\">HTML basics</a></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/CSS_basics\">CSS basics</a></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics\">JavaScript basics</a></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/Publishing_your_website\">Publishing your website</a></li><li><a href=\"/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works\">How the web works</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/HTML\">HTML — Structuring the web</a></li><li class=\"toggle\"><details><summary>Introduction to HTML</summary><ol><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML\">Introduction to HTML</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started\">Getting started with HTML</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML\">What's in the head? Metadata in HTML</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals\">HTML text fundamentals</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks\">Creating hyperlinks</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting\">Advanced text formatting</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure\">Document and website structure</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML\">Debugging HTML</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter\">Marking up a letter</a></li><li><a href=\"/en-US/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content\">Structuring a page of content</a></li></ol></details></li><li class=\"toggle\"><details><summary>Multimedia and embedding</summary><ol><li><a href=\"/en-US/docs/Learn/HTML/Multimedia_and_embedding\">Multimedia and embedding</a></li><li><a href=\"/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML\">Images in HTML</a></li><li><a href=\"/en-US/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content\">Video and audio content</a></li><li><a href=\"/en-US/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies\">From object to iframe — other embedding technologies</a></li><li><a href=\"/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web\">Adding vector graphics to the web</a></li><li><a href=\"/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images\">Responsive images</a></li><li><a href=\"/en-US/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page\">Mozilla splash page</a></li></ol></details></li><li class=\"toggle\"><details><summary>HTML tables</summary><ol><li><a href=\"/en-US/docs/Learn/HTML/Tables\">HTML tables</a></li><li><a href=\"/en-US/docs/Learn/HTML/Tables/Basics\">HTML table basics</a></li><li><a href=\"/en-US/docs/Learn/HTML/Tables/Advanced\">HTML table advanced features and accessibility</a></li><li><a href=\"/en-US/docs/Learn/HTML/Tables/Structuring_planet_data\">Structuring planet data</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/CSS\">CSS — Styling the web</a></li><li class=\"toggle\"><details><summary>CSS first steps</summary><ol><li><a href=\"/en-US/docs/Learn/CSS/First_steps\">CSS first steps</a></li><li><a href=\"/en-US/docs/Learn/CSS/First_steps/What_is_CSS\">What is CSS?</a></li><li><a href=\"/en-US/docs/Learn/CSS/First_steps/Getting_started\">Getting started with CSS</a></li><li><a href=\"/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured\">How CSS is structured</a></li><li><a href=\"/en-US/docs/Learn/CSS/First_steps/How_CSS_works\">How CSS works</a></li><li><a href=\"/en-US/docs/Learn/CSS/First_steps/Styling_a_biography_page\">Styling a biography page</a></li></ol></details></li><li class=\"toggle\"><details><summary>CSS building blocks</summary><ol><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks\">CSS building blocks</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Selectors\">CSS selectors</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors\">Type, class, and ID selectors</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors\">Attribute selectors</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements\">Pseudo-classes and pseudo-elements</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators\">Combinators</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance\">Cascade, specificity, and inheritance</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Cascade_layers\">Cascade layers</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/The_box_model\">The box model</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders\">Backgrounds and borders</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions\">Handling different text directions</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content\">Overflowing content</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Values_and_units\">CSS values and units</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS\">Sizing items in CSS</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements\">Images, media, and form elements</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Styling_tables\">Styling tables</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Advanced_styling_effects\">Advanced styling effects</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS\">Debugging CSS</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Organizing\">Organizing your CSS</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension\">Fundamental CSS comprehension</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper\">Creating fancy letterheaded paper</a></li><li><a href=\"/en-US/docs/Learn/CSS/Building_blocks/A_cool_looking_box\">A cool-looking box</a></li></ol></details></li><li class=\"toggle\"><details><summary>Styling text</summary><ol><li><a href=\"/en-US/docs/Learn/CSS/Styling_text\">CSS styling text</a></li><li><a href=\"/en-US/docs/Learn/CSS/Styling_text/Fundamentals\">Fundamental text and font styling</a></li><li><a href=\"/en-US/docs/Learn/CSS/Styling_text/Styling_lists\">Styling lists</a></li><li><a href=\"/en-US/docs/Learn/CSS/Styling_text/Styling_links\">Styling links</a></li><li><a href=\"/en-US/docs/Learn/CSS/Styling_text/Web_fonts\">Web fonts</a></li><li><a href=\"/en-US/docs/Learn/CSS/Styling_text/Typesetting_a_homepage\">Typesetting a community school homepage</a></li></ol></details></li><li class=\"toggle\"><details><summary>CSS layout</summary><ol><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout\">CSS layout</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Introduction\">Introduction to CSS layout</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Normal_Flow\">Normal Flow</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Flexbox\">Flexbox</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Grids\">Grids</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Floats\">Floats</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Positioning\">Positioning</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout\">Multiple-column layout</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design\">Responsive design</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Media_queries\">Beginner's guide to media queries</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods\">Legacy layout methods</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers\">Supporting older browsers</a></li><li><a href=\"/en-US/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension\">Fundamental layout comprehension</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/JavaScript\">JavaScript — Dynamic client-side scripting</a></li><li class=\"toggle\"><details><summary>JavaScript first steps</summary><ol><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps\">JavaScript first steps</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript\">What is JavaScript?</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/A_first_splash\">A first splash into JavaScript</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/What_went_wrong\">What went wrong? Troubleshooting JavaScript</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/Variables\">Storing the information you need — Variables</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/Math\">Basic math in JavaScript — numbers and operators</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/Strings\">Handling text — strings in JavaScript</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods\">Useful string methods</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/Arrays\">Arrays</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/First_steps/Silly_story_generator\">Silly story generator</a></li></ol></details></li><li class=\"toggle\"><details><summary>JavaScript building blocks</summary><ol><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks\">JavaScript building blocks</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/conditionals\">Making decisions in your code — conditionals</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Looping_code\">Looping code</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Functions\">Functions — reusable blocks of code</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Build_your_own_function\">Build your own function</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Return_values\">Function return values</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Events\">Introduction to events</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Event_bubbling\">Event bubbling</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Building_blocks/Image_gallery\">Image gallery</a></li></ol></details></li><li class=\"toggle\"><details open=\"\"><summary>Introducing JavaScript objects</summary><ol><li><a href=\"/en-US/docs/Learn/JavaScript/Objects\">Introducing JavaScript objects</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Objects/Basics\">JavaScript object basics</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Objects/Object_prototypes\">Object prototypes</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Objects/Object-oriented_programming\">Object-oriented programming</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Objects/Classes_in_JavaScript\">Classes in JavaScript</a></li><li><em><a href=\"/en-US/docs/Learn/JavaScript/Objects/JSON\" aria-current=\"page\">Working with JSON</a></em></li><li><a href=\"/en-US/docs/Learn/JavaScript/Objects/Object_building_practice\">Object building practice</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features\">Adding features to our bouncing balls demo</a></li></ol></details></li><li class=\"toggle\"><details><summary>Asynchronous JavaScript</summary><ol><li><a href=\"/en-US/docs/Learn/JavaScript/Asynchronous\">Asynchronous JavaScript</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Asynchronous/Introducing\">Introducing asynchronous JavaScript</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Asynchronous/Promises\">How to use promises</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API\">How to implement a promise-based API</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Asynchronous/Introducing_workers\">Introducing workers</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Asynchronous/Sequencing_animations\">Sequencing animations</a></li></ol></details></li><li class=\"toggle\"><details><summary>Client-side web APIs</summary><ol><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs\">Client-side web APIs</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Introduction\">Introduction to web APIs</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents\">Manipulating documents</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data\">Fetching data from the server</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs\">Third-party APIs</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics\">Drawing graphics</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs\">Video and Audio APIs</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage\">Client-side storage</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/Forms\">Web forms — Working with user data</a></li><li class=\"toggle\"><details><summary>Web form building blocks</summary><ol><li><a href=\"/en-US/docs/Learn/Forms\">Web form building blocks</a></li><li><a href=\"/en-US/docs/Learn/Forms/Your_first_form\">Your first form</a></li><li><a href=\"/en-US/docs/Learn/Forms/How_to_structure_a_web_form\">How to structure a web form</a></li><li><a href=\"/en-US/docs/Learn/Forms/Basic_native_form_controls\">Basic native form controls</a></li><li><a href=\"/en-US/docs/Learn/Forms/HTML5_input_types\">The HTML5 input types</a></li><li><a href=\"/en-US/docs/Learn/Forms/Other_form_controls\">Other form controls</a></li><li><a href=\"/en-US/docs/Learn/Forms/Styling_web_forms\">Styling web forms</a></li><li><a href=\"/en-US/docs/Learn/Forms/Advanced_form_styling\">Advanced form styling</a></li><li><a href=\"/en-US/docs/Learn/Forms/UI_pseudo-classes\">UI pseudo-classes</a></li><li><a href=\"/en-US/docs/Learn/Forms/Form_validation\">Client-side form validation</a></li><li><a href=\"/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data\">Sending form data</a></li></ol></details></li><li class=\"toggle\"><details><summary>Advanced web form techniques</summary><ol><li><a href=\"/en-US/docs/Learn/Forms/How_to_build_custom_form_controls\">How to build custom form controls</a></li><li><a href=\"/en-US/docs/Learn/Forms/Sending_forms_through_JavaScript\">Sending forms through JavaScript</a></li><li><a href=\"/en-US/docs/Learn/Forms/Property_compatibility_table_for_form_controls\">CSS property compatibility table for form controls</a></li><li><a href=\"/en-US/docs/Learn/Forms/HTML_forms_in_legacy_browsers\">HTML forms in legacy browsers</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/Accessibility\">Accessibility — Make the web usable by everyone</a></li><li class=\"toggle\"><details><summary>Accessibility guides</summary><ol><li><a href=\"/en-US/docs/Learn/Accessibility\">Accessibility</a></li><li><a href=\"/en-US/docs/Learn/Accessibility/What_is_accessibility\">What is accessibility?</a></li><li><a href=\"/en-US/docs/Learn/Accessibility/HTML\">HTML: A good basis for accessibility</a></li><li><a href=\"/en-US/docs/Learn/Accessibility/CSS_and_JavaScript\">CSS and JavaScript accessibility best practices</a></li><li><a href=\"/en-US/docs/Learn/Accessibility/WAI-ARIA_basics\">WAI-ARIA basics</a></li><li><a href=\"/en-US/docs/Learn/Accessibility/Multimedia\">Accessible multimedia</a></li><li><a href=\"/en-US/docs/Learn/Accessibility/Mobile\">Mobile accessibility</a></li><li><a href=\"/en-US/docs/Learn/Accessibility/Accessibility_troubleshooting\">Assessment: Accessibility troubleshooting</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/Performance\">Performance — Making websites fast and responsive</a></li><li class=\"toggle\"><details><summary>Performance guides</summary><ol><li><a href=\"/en-US/docs/Learn/Performance\">Web performance</a></li><li><a href=\"/en-US/docs/Learn/Performance/why_web_performance\">The \"why\" of web performance</a></li><li><a href=\"/en-US/docs/Learn/Performance/What_is_web_performance\">What is web performance?</a></li><li><a href=\"/en-US/docs/Learn/Performance/Perceived_performance\">Perceived performance</a></li><li><a href=\"/en-US/docs/Learn/Performance/Measuring_performance\">Measuring performance</a></li><li><a href=\"/en-US/docs/Learn/Performance/Multimedia\">Multimedia: Images</a></li><li><a href=\"/en-US/docs/Learn/Performance/video\">Multimedia: video</a></li><li><a href=\"/en-US/docs/Learn/Performance/JavaScript\">JavaScript performance optimization</a></li><li><a href=\"/en-US/docs/Learn/Performance/HTML\">HTML performance optimization</a></li><li><a href=\"/en-US/docs/Learn/Performance/CSS\">CSS performance optimization</a></li><li><a href=\"/en-US/docs/Learn/Performance/business_case_for_performance\">The business case for web performance</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/MathML\">MathML — Writing mathematics with MathML</a></li><li class=\"toggle\"><details><summary>MathML first steps</summary><ol><li><a href=\"/en-US/docs/Learn/MathML/First_steps\">MathML first steps</a></li><li><a href=\"/en-US/docs/Learn/MathML/First_steps/Getting_started\">Getting started with MathML</a></li><li><a href=\"/en-US/docs/Learn/MathML/First_steps/Text_containers\">MathML Text Containers</a></li><li><a href=\"/en-US/docs/Learn/MathML/First_steps/Fractions_and_roots\">MathML fractions and roots</a></li><li><a href=\"/en-US/docs/Learn/MathML/First_steps/Scripts\">MathML scripted elements</a></li><li><a href=\"/en-US/docs/Learn/MathML/First_steps/Tables\">MathML tables</a></li><li><a href=\"/en-US/docs/Learn/MathML/First_steps/Three_famous_mathematical_formulas\">Three famous mathematical formulas</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Games\">Games — Developing games for the web</a></li><li class=\"toggle\"><details><summary>Guides and tutorials</summary><ol><li><a href=\"/en-US/docs/Games/Introduction\">Introduction to game development for the Web</a></li><li><a href=\"/en-US/docs/Games/Techniques\">Techniques for game development</a></li><li><a href=\"/en-US/docs/Games/Tutorials\">Tutorials</a></li><li><a href=\"/en-US/docs/Games/Publishing_games\">Publishing games</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/Tools_and_testing\">Tools and testing</a></li><li class=\"toggle\"><details><summary>Client-side web development tools</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools\">Understanding client-side web development tools</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview\">Client-side tooling overview</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line\">Command line crash course</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Package_management\">Package management basics</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Introducing_complete_toolchain\">Introducing a complete toolchain</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Deployment\">Deploying our app</a></li></ol></details></li><li class=\"toggle\"><details><summary>Introduction to client-side frameworks</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction\">Introduction to client-side frameworks</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features\">Framework main features</a></li></ol></details></li><li class=\"toggle\"><details><summary>React</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started\">Getting started with React</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning\">Beginning our React todo list</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_components\">Componentizing our React app</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_events_state\">React interactivity: Events and state</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_interactivity_filtering_conditional_rendering\">React interactivity: Editing, filtering, conditional rendering</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_accessibility\">Accessibility in React</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_resources\">React resources</a></li></ol></details></li><li class=\"toggle\"><details><summary>Ember</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_getting_started\">Getting started with Ember</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_structure_componentization\">Ember app structure and componentization</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_interactivity_events_state\">Ember interactivity: Events, classes and state</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_conditional_footer\">Ember Interactivity: Footer functionality, conditional rendering</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_routing\">Routing in Ember</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Ember_resources\">Ember resources and troubleshooting</a></li></ol></details></li><li class=\"toggle\"><details><summary>Vue</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started\">Getting started with Vue</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_first_component\">Creating our first Vue component</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_rendering_lists\">Rendering a list of Vue components</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_methods_events_models\">Adding a new todo form: Vue events, methods, and models</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_styling\">Styling Vue components with CSS</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_computed_properties\">Using Vue computed properties</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_conditional_rendering\">Vue conditional rendering: editing existing todos</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management\">Vue refs and lifecycle methods for focus management</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources\">Vue resources</a></li></ol></details></li><li class=\"toggle\"><details><summary>Svelte</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_getting_started\">Getting started with Svelte</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_Todo_list_beginning\">Starting our Svelte to-do list app</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_variables_props\">Dynamic behavior in Svelte: working with variables and props</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_components\">Componentizing our Svelte app</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility\">Advanced Svelte: Reactivity, lifecycle, accessibility</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_stores\">Working with Svelte stores</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_TypeScript\">TypeScript support in Svelte</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_deployment_next\">Deployment and next steps</a></li></ol></details></li><li class=\"toggle\"><details><summary>Angular</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_getting_started\">Getting started with Angular</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_todo_list_beginning\">Beginning our Angular todo list app</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_styling\">Styling our Angular app</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_item_component\">Creating an item component</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_filtering\">Filtering our to-do items</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Angular_building\">Building Angular applications and further resources</a></li></ol></details></li><li class=\"toggle\"><details><summary>Git and GitHub</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/GitHub\">Git and GitHub</a></li></ol></details></li><li class=\"toggle\"><details><summary>Cross browser testing</summary><ol><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing\">Cross browser testing</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Introduction\">Introduction to cross-browser testing</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies\">Strategies for carrying out testing</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS\">Handling common HTML and CSS problems</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/JavaScript\">Handling common JavaScript problems</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility\">Handling common accessibility problems</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection\">Implementing feature detection</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Automated_testing\">Introduction to automated testing</a></li><li><a href=\"/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Your_own_automation_environment\">Setting up your own test automation environment</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/Server-side\">Server-side website programming</a></li><li class=\"toggle\"><details><summary>First steps</summary><ol><li><a href=\"/en-US/docs/Learn/Server-side/First_steps\">Server-side website programming first steps</a></li><li><a href=\"/en-US/docs/Learn/Server-side/First_steps/Introduction\">Introduction to the server side</a></li><li><a href=\"/en-US/docs/Learn/Server-side/First_steps/Client-Server_overview\">Client-Server Overview</a></li><li><a href=\"/en-US/docs/Learn/Server-side/First_steps/Web_frameworks\">Server-side web frameworks</a></li><li><a href=\"/en-US/docs/Learn/Server-side/First_steps/Website_security\">Website security</a></li></ol></details></li><li class=\"toggle\"><details><summary>Django web framework (Python)</summary><ol><li><a href=\"/en-US/docs/Learn/Server-side/Django\">Django Web Framework (Python)</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Introduction\">Django introduction</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/development_environment\">Setting up a Django development environment</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Tutorial_local_library_website\">Django Tutorial: The Local Library website</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/skeleton_website\">Django Tutorial Part 2: Creating a skeleton website</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Models\">Django Tutorial Part 3: Using models</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Admin_site\">Django Tutorial Part 4: Django admin site</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Home_page\">Django Tutorial Part 5: Creating our home page</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Generic_views\">Django Tutorial Part 6: Generic list and detail views</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Sessions\">Django Tutorial Part 7: Sessions framework</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Authentication\">Django Tutorial Part 8: User authentication and permissions</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Forms\">Django Tutorial Part 9: Working with forms</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Testing\">Django Tutorial Part 10: Testing a Django web application</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/Deployment\">Django Tutorial Part 11: Deploying Django to production</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/web_application_security\">Django web application security</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Django/django_assessment_blog\">Assessment: DIY Django mini blog</a></li></ol></details></li><li class=\"toggle\"><details><summary>Express Web Framework (Node.js/JavaScript)</summary><ol><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs\">Express web framework (Node.js/JavaScript)</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/Introduction\">Express/Node introduction</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/development_environment\">Setting up a Node development environment</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/Tutorial_local_library_website\">Express Tutorial: The Local Library website</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/skeleton_website\">Express Tutorial Part 2: Creating a skeleton website</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/mongoose\">Express Tutorial Part 3: Using a Database (with Mongoose)</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/routes\">Express Tutorial Part 4: Routes and controllers</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/Displaying_data\">Express Tutorial Part 5: Displaying library data</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/forms\">Express Tutorial Part 6: Working with forms</a></li><li><a href=\"/en-US/docs/Learn/Server-side/Express_Nodejs/deployment\">Express Tutorial Part 7: Deploying to production</a></li></ol></details></li><li class=\"section\"><a href=\"/en-US/docs/Learn/Common_questions\">Further resources</a></li><li class=\"toggle\"><details><summary>Common questions</summary><ol><li><a href=\"/en-US/docs/Learn/Common_questions\">Common questions</a></li><li><a href=\"/en-US/docs/Learn/HTML/Howto\">Use HTML to solve common problems</a></li><li><a href=\"/en-US/docs/Learn/CSS/Howto\">Use CSS to solve common problems</a></li><li><a href=\"/en-US/docs/Learn/JavaScript/Howto\">Solve common problems in your JavaScript code</a></li><li><a href=\"/en-US/docs/Learn/Common_questions/Web_mechanics\">Web mechanics</a></li><li><a href=\"/en-US/docs/Learn/Common_questions/Tools_and_setup\">Tools and setup</a></li><li><a href=\"/en-US/docs/Learn/Common_questions/Design_and_accessibility\">Design and accessibility</a></li></ol></details></li></ol>","source":{"folder":"en-us/learn/javascript/objects/json","github_url":"https://github.com/mdn/content/blob/main/files/en-us/learn/javascript/objects/json/index.md","last_commit_url":"https://github.com/mdn/content/commit/d71da812ee94c20658cb1916a123a42254ea545c","filename":"index.md"},"summary":"JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax. It is commonly used for transmitting data in web applications (e.g., sending some data from the server to the client, so it can be displayed on a web page, or vice versa). You'll come across it quite often, so in this article, we give you all you need to work with JSON using JavaScript, including parsing JSON so you can access data within it, and creating JSON.","title":"Working with JSON","toc":[{"text":"No, really, what is JSON?","id":"no_really_what_is_json"},{"text":"Active learning: Working through a JSON example","id":"active_learning_working_through_a_json_example"},{"text":"Converting between objects and text","id":"converting_between_objects_and_text"},{"text":"Test your skills!","id":"test_your_skills!"},{"text":"Summary","id":"summary"},{"text":"See also","id":"see_also"}],"pageType":"learn-module-chapter"}}</script> <script>function gtElInit() {var lib = new google.translate.TranslateService();lib.translatePage('pl', 'fr', function () {});}</script> <script src="https://translate.google.com/translate_a/element.js?cb=gtElInit&hl=en-GB&client=wt" type="text/javascript"></script> </body> </html>