Json je ale z hľadiska parsingu vhodný nakoľko to vie rovno DB a ja si len vypýtam dáta pre S1 a dostanem len ich z celého stringu takže ak by bola nejaká možnosť tie dáta tam narvať budem len rad
Napadlo mi jedno riešenie cele pole previesť ako hex to char
Založen: Dec 12, 2005 Příspěvky: 2342 Bydliště: SR, Poprad
Zaslal: pá leden 12 2024, 12:05 Předmět:
ako moze uint8_t obsahovat medzeru? ved to su cisla v rozsahu 0..255 nic ine.
array sa v json zapisuje ako
kód:
{
"S1": [1,2,3,4]
}
Myslim, ze tu je problem uz v samotnom navrhu
a bacha, json v db je strasne pomaly, ak chces nieco v nom vyhladavat. _________________ No vidis, a tak si sa bal
Založen: Dec 11, 2015 Příspěvky: 183 Bydliště: Slovensko,Bratislava
Zaslal: pá leden 12 2024, 12:38 Předmět:
môže, keď to mcu pošle cez http rovno surové dáta, tvoj zápis bude fungovať ak v mcu si prekonvertuje uint8 to char a potom to pošle v takom formáte ako si napisal ale hodnoty 1 2 3 4 budu reprezentovane ich asci hodnotou
Asi to neviem dobre vysvetliť ale mame v mcu uložene v
Založen: Dec 12, 2005 Příspěvky: 2342 Bydliště: SR, Poprad
Zaslal: pá leden 12 2024, 13:32 Předmět:
tak lebo to robis zle. bud tam posielas ciselne hodnoty [1,2,3] alebo mu tam posielas rovno ascii znaky, ale vtedy ich musis dat do uvodzoviek ['a', 'b', ' ']
ty mu tam pravdepodobne posielas ascii znaky, ale nie su v uvodzovkach, a preto to nejde.
Tipujem, je to arduino? _________________ No vidis, a tak si sa bal
Založen: Dec 12, 2005 Příspěvky: 2342 Bydliště: SR, Poprad
Zaslal: pá leden 12 2024, 14:36 Předmět:
jasne, ze to nepojde, lebo A nie je cislo. v poli musis mat rovnaky datovy typ.
a ked uz, tak by to malo byt 'A' - v uvodzovkach _________________ No vidis, a tak si sa bal
Naposledy upravil pocitujlasku dne pá leden 12 2024, 14:41, celkově upraveno 1 krát.
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: pá leden 12 2024, 14:38 Předmět:
Co to má vůbec být?
Za mě to vůbec nedává smysl a je to zřejmě naprosto vytržené z kontextu a od základu i špatně navržené.
Posílat v textovém protokolu HTML textové znaky odpovídající hodnotám nad 32 dekadicky v kombinaci a binárními hodnotami pod 32 dekadicky viz ty hodnoty 0x01 až 0x04, což děláte, je dle mého názoru nesmyslné a tudíž vám to pak logicky nefunguje správně, a to nemluvě o tom, že pokud se s tím obsahem v poli json[] má zacházet jako s textovým řetězcem tak vám na konci chybí zakončení 0, ale i tak se mi to zdá od základu špatně navržené.
tedy v podstatě nesmyslná kombinace zobrazitelných (nad 32 dekadicky) a nezobrazitelných (pod 32 dekadicky) znaků char, které jsou intepretovány takto, ale na straně nějaké DB kde se to snažíte zapisovat do položky nějakého typu to může být logicky odmítnuto jako nepovolená hodnota.
Mimochodem je jedno jestli na konkrétní pozici pole napíšete v jazyce C hodnotu dekadicky jako číslo nebo hexa nebo znakově, protože v jazyce C, ve kterém s tím defacto pracujete je to významově totéž a výsledek je ten obsah pole json[]. Podstatné je, že každá pozice pole je v reálu jen jeden char.
Dekadicky např. 34 je totéž co hexa 0x22 a totéž co jeden char zapsaný v jednoduchých uvozovkách '"'.
Založen: Dec 11, 2015 Příspěvky: 183 Bydliště: Slovensko,Bratislava
Zaslal: pá leden 12 2024, 15:10 Předmět:
Áno konečne niekto mi rozumie
Všetko čo ste popísali je úplne správne , lenže mne to zobrazovať ako ascii netreba ja viem že to čo tam pošlem je z hľadiska ascii úplná blbosť a viem že ďalej z dátami z db ktoré spracujem nejakou mnou apkou musím pracovať ako s dekadickými hexa binarnymi ... hodnotami.
Totižto ja chcem do JSON dostať pole ktoré bude obsahovať akekolvek hodnoty od 0...255. Tak aby ma db neblokovala že používam nepovolene znaky. Pretože db sa na nich pozerá ako na ascii znaky
pocitujlasku napsal(a):
jasne, že to nepôjde, lebo A nie je číslo. v poli musis mat rovnaký dátový typ.
a keď už, tak by to malo byt 'A' - v úvodzovkách
Pre teba je to A nie je číslo ale pre mňa je to dekadické číslo 65 a jasne že tam musíš dať úvodzovky ale stále to bude len 65
Odstraněna citace předcházejícího příspěvku, viz bod 4f "Pravidel". jimirek
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: pá leden 12 2024, 15:25 Předmět:
Problémem je ovšem právě v tom přenosu binárních dat přes textový HTML protokol. Předpokládám, že ten HTML poskytuje nějaká serverová aplikace, kterou si jste sám napsal.
Je otázkou co přesně znak po znaku přijme druhá strana a jak to ta druhá strana v reálu vidí či jak to interpretuje, a to ještě před tím než to bude předávat do jakéhokoli DB?
Problém je totiž možná v tom, že při přenosu vhodně nezakódovaných binárních dat přes textový protokol HMTL dojde k jejich zkomolení a druhá strana pak obdrží bůhví co. Při posílání binárních dat přes HTML je vhodnější použít textové kódování BASE64 podobně jako třeba v emailech.
Takže je na zvážení možnost ty binární data na straně serverové aplikace nejprve převést do jednoto textového řetězce BASE64 což je čistě textové kódování používající jen zobrazitelné znaky omezené jen na část ASCII sady a protistraně je pak předat přes HTML jako BASE64 řetězec neobsahující žádná binární data. Protistrana si pak přijatý řetězec BASE64 převede zpět na původní binární data aniž by došlo k jejich zkomolení.
Založen: Dec 12, 2005 Příspěvky: 2342 Bydliště: SR, Poprad
Zaslal: pá leden 12 2024, 15:31 Předmět:
ani pre db to nie je cislo. Pozor na to, ze dnes sa uz pracuje s UTF-8 a nie ascii. preto ti stale opakujem, posielaj tam cisla, a nemiesaj ascii znaky a ich ord hodnotu.
pre teba stale moze byt A=65, ale parser, ako vidis s tym ma problem.
Ak to robis v arduine, existuje super kniznica arduinojson, kde si vies krasne serializovat a deserializovat json a vyhnes sa takymto zvlastnym rieseniam _________________ No vidis, a tak si sa bal
Založen: Dec 11, 2015 Příspěvky: 183 Bydliště: Slovensko,Bratislava
Zaslal: pá leden 12 2024, 15:52 Předmět:
pocitujlasku napsal(a):
ani pre db to nie je cislo. Pozor na to, ze dnes sa uz pracuje s UTF-8 a nie ascii. preto ti stale opakujem, posielaj tam cisla, a nemiesaj ascii znaky a ich ord hodnotu.
pre teba stale moze byt A=65, ale parser, ako vidis s tym ma problem.
Ak to robis v arduine, existuje super kniznica arduinojson, kde si vies krasne serializovat a deserializovat json a vyhnes sa takymto zvlastnym rieseniam
Valdano napsal(a):
Ano nebastlit to takto nevhodně po svém, ale použít knihovnu ArduinoJson je dobré řešení.
Super ďakujem vám za objasnenie a s arduino nepracujem ale pozriem sa do kodu ako je to tam implementovane .
každopádne už teraz predpokladám že v tej knižnice sa budú číselne hodnoty uint interpretovane na ich ascii hodnotu ako napríklad 0x01 -> '1' 0xff -> "255" aby HTML s tým nemal potiže a následne sa to cele ešte zapuzdri do formátu JSON .
Ja som dneska narýchlo spravil podobne riešenie len interpretujem hex hodnotu do ascii a nasledne to zašlem
for (uint16_t i = 0; i < length; i++)
{
*(output_string++) = '0';
*(output_string++) = 'x';
output_string += sprintf(output_string,"%.2x", *(input_data++)); // save data and increment pointer value
}
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: pá leden 12 2024, 15:59 Předmět:
Převést binární data na straně serveru na čistě textový řetězec složený z hexa vyjádření jednotlivých hodnot v poli je také určitý způsob řešení. Pokud stačí do DB ukládat jen takto složené řetězce pak na straně protistrany ani nebude nutné převádět data do jiného formátu a do DB se uloží jen jako čisté řetězce obsahující textové hexa vyjádření tj. tak jak jsou převedeny.
Založen: Dec 11, 2015 Příspěvky: 183 Bydliště: Slovensko,Bratislava
Zaslal: pá leden 12 2024, 19:18 Předmět:
Valdano napsal(a):
Převést binární data na straně serveru na čistě textový řetězec složený z hexa vyjádření jednotlivých hodnot v poli je také určitý způsob řešení. Pokud stačí do DB ukládat jen takto složené řetězce pak na straně protistrany ani nebude nutné převádět data do jiného formátu a do DB se uloží jen jako čisté řetězce obsahující textové hexa vyjádření tj. tak jak jsou převedeny.
jj našiel som si to ale ďakujem.
Inak len na okraj dáta tam chodili správne (to netvrdím že to tak robiť je správne) problém bol že ich tam db nechcela pustiť. Diky za pomoc
samec napsal(a):
To je jak že neovládam malú násobilku, ale idem počítať trojný integrál.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.