Skocz do zawartości

[PHP} Json encode przy mixed varibles


LolikZabójca

Rekomendowane odpowiedzi

  • Administratorzy

Zarówno json_encode jak i json_decode świetnie radzą sobie ze zmiennymi typu null, bool, string, integer, float, array. Pozostałych JSON nie obsługuje. Przy czym warto pamiętać, że jak chcesz tablicę w PHP dostać, to robi to json_decode($data, true), inaczej masz obiekty.

Odnośnik do komentarza
Udostępnij na innych stronach

1 godzinę temu, Chell napisał:

rozszerz o co Ci chodzi? i chyba mylisz encode z decode, wiec w ogole ciezko stwierdzic w czym rzecz

Decode. Racja

23 minuty temu, gnysek napisał:

Zarówno json_encode jak i json_decode świetnie radzą sobie ze zmiennymi typu null, bool, string, integer, float, array. Pozostałych JSON nie obsługuje. Przy czym warto pamiętać, że jak chcesz tablicę w PHP dostać, to robi to json_decode($data, true), inaczej masz obiekty.

Tzn jak to będzie wyglądało? Czy php może mieć wgl tablice z mieszanymi typami? Powstanie takowa, czy jak zostanie to rozwiązane?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

może, nie ma żadnego problemu żeby istniało coś takiego:
 

[
	'name' => 'buty',
	'price' => 19.99,
	'comfortable' => true,
	'sizes' => [38, 39, 40, 41]
]

trik polega na tym, że json_decode tak jak napisał gnysek przyjmuje dwa argumenty, i drugim jest czy dekodować do tablicy asocjacyjnej, czy tworzyć stdClass (domyslnie false do stdclass) - tablica asocjacyjna to wiadomo ['klucz' => wartosc] i odczytuje sie z niej $zmienna['klucz'], a stdClass to taka paskuda pseudoobiektowa, z której zczytujesz $zmienna->klucz - nie uzywaj tego

Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, Chell napisał:

może, nie ma żadnego problemu żeby istniało coś takiego:
 


[
	'name' => 'buty',
	'price' => 19.99,
	'comfortable' => true,
	'sizes' => [38, 39, 40, 41]
]

trik polega na tym, że json_decode tak jak napisał gnysek przyjmuje dwa argumenty, i drugim jest czy dekodować do tablicy asocjacyjnej, czy tworzyć stdClass (domyslnie false do stdclass) - tablica asocjacyjna to wiadomo ['klucz' => wartosc] i odczytuje sie z niej $zmienna['klucz'], a stdClass to taka paskuda pseudoobiektowa, z której zczytujesz $zmienna->klucz - nie uzywaj tego

ale czy tablica asocjacyjna w php może mieć mieszane typy zmiennych?

Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, Chell napisał:

może, nie ma żadnego problemu żeby istniało coś takiego:
 


[
	'name' => 'buty',
	'price' => 19.99,
	'comfortable' => true,
	'sizes' => [38, 39, 40, 41]
]

trik polega na tym, że json_decode tak jak napisał gnysek przyjmuje dwa argumenty, i drugim jest czy dekodować do tablicy asocjacyjnej, czy tworzyć stdClass (domyslnie false do stdclass) - tablica asocjacyjna to wiadomo ['klucz' => wartosc] i odczytuje sie z niej $zmienna['klucz'], a stdClass to taka paskuda pseudoobiektowa, z której zczytujesz $zmienna->klucz - nie uzywaj tego

Nie będę kłamał. Nie rozumiem co oznacza ten zapis strzałkowy xd

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

no to tak właśnie wygląda tablica asocjacyjna. w zwykłej masz po prostu ['cos', 'costam', 'tez cos'], 3 wartosci ktorych klucze to kolejno 0, 1 i 2. zeby zczytac 'costam' musisz sie powolac na $tablica[1]. tablica asocjacyjna to taka, w ktorej sam sobie definiujesz klucze zapisem [klucz => wartosc], np. ['klucz' => 'cos', 'innyklucz' => 'costam', 'jeszcze zupelnie inny klucz' => 'tez cos'] - zeby stad zczytac 'costam' musisz sie powolac na $tablica['innyklucz']

Odnośnik do komentarza
Udostępnij na innych stronach

7 minut temu, Chell napisał:

no to tak właśnie wygląda tablica asocjacyjna. w zwykłej masz po prostu ['cos', 'costam', 'tez cos'], 3 wartosci ktorych klucze to kolejno 0, 1 i 2. zeby zczytac 'costam' musisz sie powolac na $tablica[1]. tablica asocjacyjna to taka, w ktorej sam sobie definiujesz klucze zapisem [klucz => wartosc], np. ['klucz' => 'cos', 'innyklucz' => 'costam', 'jeszcze zupelnie inny klucz' => 'tez cos'] - zeby stad zczytac 'costam' musisz sie powolac na $tablica['innyklucz']

Tablicę asocjacyjną znam na zasadzie:

array['hp'] = 20;

array['dmg'] = 30;

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Może mieć różne typy w tablicy, możesz nawet wstawić obiekt klasy (oczywiscie nie dla JSONa, mówię ogólnie), czy zasób (mysql, wskaźnik na plik, itp.).

 

array['hp'] = 20;

array['dmg'] = 30;

 

to to samo co:

 

$array = ['hp' => 20, 'dmg' => 30];

 

z tym, że pierwszy zapis nadpisze/doda dany klucz, a drugi nadpisuje/tworzy całą tablicę.

Odnośnik do komentarza
Udostępnij na innych stronach

json_encode/decode nie powinien mieć w takim razie problemu, jako przykład może to wyglądać równie dobrze tak:

[
  "foo",
  123456,
  { "bar": 123, "baz": [1, 2, true, true, false] },
  [1, 2, { "value": 3 }, null]
]

 

Edytowane przez Konrad-GM
Zapomniałem o cudzysłowach w JSONie kek
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...