NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: JSON - formát a zpracování v jQuery i PHP

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
David Šabacký:18.6.2018 11:58

Ahoj lidi,

mám samozřejmě problém. Mám vytvoření JSON soubor users.json s uživateli:

[{"active":"1","name":"Martin","pass":"76d80224611fc919a5d54f0ff9fba446","role":"admin","phone":"+4200000000","mail":"martin.martin@seznam.cz"},{"active":"1","name":"David","pass":"7815696ecbf1c96e6894b779456d330e","role":"user","phone":"+42022222222","mail":"david.david@seznam.cz"},{"active":"1","name":"Pepa","pass":"7815696ecbf1c96e6894b779456d330e","role":"admin","phone":"+42011111111","mail":"pepa.pepa@seznam.cz"}]

na ten normálně můžu pomocí PHp i jQuery, ale potřeboval bych zavolat php, který vybere jen určité uživatele a pošle mi to zpět jako JSON pro jQuery. Můj PHP script funguje a končí

$someJSON = json_encode($array);
echo($someJSON);

Ale návratová hodnota souboru je :

{"1":{"name":"David","mail":"david.david@seznam.cz","phone":"+42022222222","role":"user"},"2":{"name":"Pepa","mail":"pepa.pepa@seznam.cz","phone":"+42011111111","role":"admin"}}

což mi nechce jQuery parsovat nebo lépe řečeno nevím jak to parsovat. Když pustím jQuery přímo na soubor users. json vše běží jako hodinky, ale pokud to pustím přes php, pak se změní formát JSONu a jQuery mi to už neparsuje.

Ještě jak parsuji v jQuery:

jQuery(json).each(function(i, item){

                                        var txt = $("<p></p>").text(item.name + item.phone);
                                        $("body").append(txt);
                                        //console.log(item.phone, item.name);// code to be executed if condition is false



                                })

Mám k tomu ještě jeden dotaz, jaký vlastně správný zápis JSON v tomto případě? Jde mi i o to, že budu v budoucnosti nahrazovat data uživatelů, mazat uživatele nebo i přidávat pomocí PHP a hodně nerad bych teď dělal na špatném formátu.

Díky moc

David

 
Odpovědět
18.6.2018 11:58
Avatar
Roman
Člen
Avatar
Odpovídá na David Šabacký
Roman:18.6.2018 12:46

Zkus si dat pred echo var_dump a urcite zjistis ze pole ma 1 polozku, ve ktere jsou teprve data. Tzn uprav si plneni pole a pak i json string bude v poradku.

 
Nahoru Odpovědět
18.6.2018 12:46
Avatar
Odpovídá na Roman
David Šabacký:18.6.2018 13:15

Ahoj, díky, už jsem na to kápnul, udělal jsem si vlastní string, a to přes:

i

                $array[] = ['name' => $data[$key][name], 'mail' => $data[$key][mail]];

// Convert Array to JSON String
$someJSON = json_encode($array);

Pak už mi to vrací formát jaký potřebuji.

David

 
Nahoru Odpovědět
18.6.2018 13:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.