Geek tričko zdarma Python týden
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Pouze tento sleva až 80% na kurzy Python
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":"[email protected]"},{"active":"1","name":"David","pass":"7815696ecbf1c96e6894b779456d330e","role":"user","phone":"+42022222222","mail":"[email protected]"},{"active":"1","name":"Pepa","pass":"7815696ecbf1c96e6894b779456d330e","role":"admin","phone":"+42011111111","mail":"[email protected]"}]

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":"[email protected]","phone":"+42022222222","role":"user"},"2":{"name":"Pepa","mail":"[email protected]","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.