Halloweenská akce! Na stránce s dobitím bodů zadej dole kód STRASIDELNYCH20 a získej porci +20% bodů zdarma!
Akce končí 31.10. o půlnoci.

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

PHP PHP JSON - formát a zpracování v jQuery i PHP American English version English version

Aktivity (1)
Avatar
David Šabacký:18. června 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. června 11:58
Avatar
Roman
Člen
Avatar
Odpovídá na David Šabacký
Roman:18. června 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. června 12:46
Avatar
Odpovídá na Roman
David Šabacký:18. června 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. června 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.