Diskuze: JSON soubor do proměné a možnost další práce
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


JSON by mel byt js string.
Melo by to jit nacist pres request jako json. Jak to mas.
String by mel jit pak pouzit primo pres eval. Neprijemne je, ze eval dela vic
nez to. kdyz to tam nekdo podstrci jiny js kod, funkci, eval ho vykona. A taky
je dobre si pohlidat, zda mas spravne kodovani znaku win/utf.
x = "{123:456}";
x = eval(x);
alert(x[123]); // alert(x['123'])
google = js decode json string
https://developer.mozilla.org/…s/JSON/parse
https://learncodeweb.com/…-javascript/
https://stackoverflow.com/…to-an-object
https://www.freecodecamp.org/…-javascript/
<script>
fetch('https://api.chucknorris.io/jokes/random?category=dev')
.then(res => res.json()) // the .json() method parses the JSON response into a JS object literal
.then(data => console.log(data));
fetch("./jokes.json", { mode: "no-cors" }) // disable CORS because path does not contain http(s)
.then((res) => res.json())
.then((data) => console.log(data));
const fs = require('fs');
const jokesFile = fs.readFileSync('./jokes.json', 'utf8');
const jokes = JSON.parse(jokesFile);
</script>
var dotaz = new XMLHttpRequest;
dotaz.open('GET','static/js/helpdesk.json',false)
dotaz.send(null)
jsoon=JSON.parse(dotaz.responseText)
dotaz=jsoon.dotaz
dotaz je json uložený do var, ale chtěl bych se zeptat jestli by nešlo něco co využívá jquery či čistý javascript a není to tak zastaralé jako XMLHttpRequest a uložit do proměné s kterou bych následně mohl pracovat nezávisle a vně nějaké funkce
Používat jQuery kvůli použití JSON je naprosto zbytečné. Řešení využívající metodu fetch v odpovědi Petera je pomocí čistého Javascriptu. Fetch je nová obdoba a alternativa XMLHttpRequest.
Já vím, že modernější je fetch oproti XMLHttpRequest, ale chtěl bych dostat ten json ven jako proměnou a to se mi s fetch nedaří
Neni mi jasne, co chces udelat. Vytvor jednoduchy program s nejakym demo jsonem a nekde to vystav. jsfiffle.net nebo u sebe. Co ti pise js konzola za chybu?
Do jineho okna muzes predat js promenou. Pokud tam neni omezeni CORS.
Do jineho souboru muzes predat jen string, treba ten jsonovy.
Do html stranky lze nacist json jako js kod. (jakoze, nemusis to tahat
requestem, pokud se ta data nemeni)
<script>
var x = "<?php echo json_endode(array(1,2,3)) ?>";
</script>
<div>
<?php echo json_endode(array(1,2,3)) ?>
</div>
<div>
<?php echo htmlspecialchars(file_get_content('http://seznam.cz')) ?>
</div>
Aha, teď koukám na ten tvůj kód. Problém je, že fetch se vždy volá asynchronně, XMLHttpRequest nastavuješ, aby byl synchronní (3. parametr metody open).
Asynchronní volání funguje tak, že se kód vykoná, ale nečeká na jeho dokončení. Takže se jde rovnou dál, v tvém případě na výpis řetězce do konzole. V tu dobu ještě nebyl asynchronní kód dokončen, tak proměnná zůstává prázdná. Řešení je využít nějaký callback.
Asynchronní XMLHttpRequest https://www.w3schools.com/js/tryit.asp?…
Příklad fetch:
fetch('http://example.com/movies.json')
.then((response) => {
return response.json();
})
.then((myJson) => {
console.log(myJson);
});
Děkuji, za odpověď a pro mé účely budu asi muset ty data dát do databáze. Vůbec jsem nevěděl, že asynchronní funkce existují děkuji za vysvětlení
Pouziva se to pro stahovani obrazku, treba. Dobre je videt na pomalem internetu, jak se postupne nacitaji obrazky.
Zobrazeno 11 zpráv z 11.