Portál AbcLinuxu, 14. května 2025 00:35
<body> <input id="arrayfile" type="file" /> <button onclick="loader()">loader</button> </body> function loader(){ console.log(document.getElementById("arrayfile").value); }
Dobrý večer, můžu v html stránce vybrat pomocí inputu soubor a načíst ho?Priamo nie. Hm, a poslat na server a nasledne si to stiahnut?
Uncaught SyntaxError: Unexpected token A in JSON at position 0 at JSON.parse (<anonymous>) at FileReader.reader.onload ((index):50) reader.onload @ (index):50 load (async) loadJson @ (index):48 onchange @ (index):42
ukaž jak jako vypadá texťák co tam strkáš
pole1=[ {a:1,b:5,c:"12.01.2020",d:"Lorem ipsum dolor sit amet"}, {a:2,b:7,c:"12.01.2020",d:"Nunc egestas a nulla nibh"}, {a:3,b:8,c:"12.01.2020",d:"Pretium faucibus tinbunt tinbunt Nulla"}, {a:4,b:1,c:"12.01.2020",d:"Nunc metus pulvinar vitae non"}, ]; pole2=[ {a:1,b:"Lorem",c:0}, {a:2,b:"Egestas",c:1}, {a:3,b:"Faucibus",c:1}, {a:4,b:"Tinbunt",c:1}, ];
to je formát pole v javascriptu to neni validní json a sou to dvě pole najednou. pokuď si mužeš vybírat formát tamtoho souboru tak jako určitě šahej po json. pokud ne tak asi bude potřeba namastit vlastní parser :'( :'( nóóó a jít cestou nějakýho jsinjectu asi neni uplně supr nápad ;D
v js převedeš pole na json takhlen
var jsonString = JSON.stringify(pole1);
by mělo vypadat takle nějak
[{"a":1,"b":5,"c":"12.01.2020","d":"Lorem ipsum dolor sit amet"}, {"a":2,"b":7,"c":"12.01.2020","d":"Nunc egestas a nulla nibh"}, {"a":3,"b":8,"c":"12.01.2020","d":"Pretium faucibus tinbunt tinbunt Nulla"}, {"a":4,"b":1,"c":"12.01.2020","d":"Nunc metus pulvinar vitae non"}]
takhle formátovanej texťák by dotoho jako už mělo jít strčit ;D
var jsonString = JSON.stringify(pole1);jde udělat opačně?
[ pole1=[{a:1,b:5,c:"12.01.2020",d:"Lorem ipsum dolor sit amet"}, {a:2,b:7,c:"12.01.2020",d:"Nunc egestas a nulla nibh"}, {a:3,b:8,c:"12.01.2020",d:"Pretium faucibus tinbunt tinbunt Nulla"}, {a:4,b:1,c:"12.01.2020",d:"Nunc metus pulvinar vitae non"}, ], pole2=[{a:1,b:"Lorem",c:0}, {a:2,b:"Egestas",c:1}, {a:3,b:"Faucibus",c:1}, {a:4,b:"Tinbunt",c:1}, ] ]
[
[{a:1,b:5,c:"12.01.2020",d:"Lorem ipsum dolor sit amet"},
{a:2,b:7,c:"12.01.2020",d:"Nunc egestas a nulla nibh"},
{a:3,b:8,c:"12.01.2020",d:"Pretium faucibus tinbunt tinbunt Nulla"},
{a:4,b:1,c:"12.01.2020",d:"Nunc metus pulvinar vitae non"},
],
[{a:1,b:"Lorem",c:0},
{a:2,b:"Egestas",c:1},
{a:3,b:"Faucibus",c:1},
{a:4,b:"Tinbunt",c:1},
]
]
A přistupovat k tomu jako o[0] a o[1]
Nebo je mít jako objekt:
{
"pole1": [{a:1,b:5,c:"12.01.2020",d:"Lorem ipsum dolor sit amet"},
{a:2,b:7,c:"12.01.2020",d:"Nunc egestas a nulla nibh"},
{a:3,b:8,c:"12.01.2020",d:"Pretium faucibus tinbunt tinbunt Nulla"},
{a:4,b:1,c:"12.01.2020",d:"Nunc metus pulvinar vitae non"},
],
"pole2": [{a:1,b:"Lorem",c:0},
{a:2,b:"Egestas",c:1},
{a:3,b:"Faucibus",c:1},
{a:4,b:"Tinbunt",c:1},
]
}
A přistupovat k tomu jako o.pole1 a o.pole2
[ [ {"a":1,"b":5,"c":"12.01.2020","d":"Lorem ipsum dolor sit amet"}, {"a":2,"b":7,"c":"12.01.2020","d":"Nunc egestas a nulla nibh"}, {"a":3,"b":8,"c":"12.01.2020","d":"Pretium faucibus tinbunt tinbunt Nulla"}, {"a":4,"b":1,"c":"12.01.2020","d":"Nunc metus pulvinar vitae non"}, ], [ {"a":1,"b":"Lorem","c":0}, {"a":2,"b":"Egestas","c":1}, {"a":3,"b":"Faucibus","c":1}, {"a":4,"b":"Tinbunt","c":1}, ] ]a tohle taky ne
{ "pole1": [ {"a":1,"b":5,"c":"12.01.2020","d":"Lorem ipsum dolor sit amet"}, {"a":2,"b":7,"c":"12.01.2020","d":"Nunc egestas a nulla nibh"}, {"a":3,"b":8,"c":"12.01.2020","d":"Pretium faucibus tinbunt tinbunt Nulla"}, {"a":4,"b":1,"c":"12.01.2020","d":"Nunc metus pulvinar vitae non"}, ], "pole2": [ {"a":1,"b":"Lorem","c":0}, {"a":2,"b":"Egestas","c":1}, {"a":3,"b":"Faucibus","c":1}, {"a":4,"b":"Tinbunt","c":1}, ] }Jinak práce se soubory nejsou vůbec jednoduchá záležitost a věřím, že ani pro profíka, natož úplného amatéra. Tak, že pokud mě nikdo neporadí, končím - tohle podle žádného tutoriálu bohužel nedám. Trápím se s tím > týden
musíš jako číst takový ty chybový hlášení coto jako piše do webový konzole ;D
u těch vnořenejch polí mozilla napsala
SyntaxError: JSON.parse: unexpected character at line 7 column 9 of the JSON data
nóóóó a na tý pozici v souboru je končicí hranatá závorka. se jako podrbu na za uchem a začnu přemejšlet proč by jako hergot měla hranatá závorka něčemu vadit jako aproč ji jako tam nečeká?????? začnu tim že se podivám coje jakoby před tou závorkou a co nevidim!!!!!!!!! čárka za posledním elementem pole!!!!! tak ji jako odmáznu protože v json nekončí pole čárkou čárka je separátor mezi prvkama. nóóóó znova to pustim a znova si to jako bude stěžovat na stejnou věc alev druhým poli. umáznu pustim a už to jede!!!!! :O :O :D ;D
u tý druhý ukázky uplně stejně. problém sou ty čárečky ;D
hele celkem dobrej tutorial na json ;D
try {
jsonObj = JSON.parse(response);
} catch(e) {
// něco se posralo
}
si myslim že si se blbě kouknul :O :O kolemjdoucí piše dokud néé pokud ;D
nóóó js je asynchroní a používaj se tam takzvaný callbacky. callback je taková funkce co se zavolá až jiná funkce zkončí. s callbackem takle nějak debianův příklad
<html> <head> <meta charset="UTF-8"> </head> <body> <input type='file' accept='*' onchange='loadJson(event,neco_dalsiho)'> <script> function neco_dalsiho(nacteno) { console.log("tady se pokracuje"); console.log(nacteno); } function loadJson(event,callback) { var input = event.target; var reader = new FileReader(); reader.onload = function(){ // pozor, FileReader je asynchronni var json_txt = reader.result; var json_obj = JSON.parse(json_txt); console.log(json_obj) // s tim si pracuj var nacteno=json_obj; callback(nacteno); }; reader.readAsText(input.files[0]); }; </script> </body> </html>
joa prej sou teďko v javascriptu in nějaký promise hele :O ;D
jako v samotným js prej ne ale omezovat zdroje muže třeba prohlížeč
<input type='file' accept='*' onchange='loadJson(event,callbackSuccess,callbackError)'>
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.