Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z JSON
Forum PHP.pl > Forum > PHP
krzychu0808
Witam...
Mam problem z decode w JSON dostaję dane w takiej dziwnej postaci:

  1. $test = '[1,{"1":{"a":"1","b":3},{"a":"34","b":2344}},{"2":{"a":"1","b":3},{"a":"34","b":2344}},{"3":{"id":0,"text":"abc"},"70":{"id":4,"text":"abc"}}]';
  2. $json = json_decode($test,true);


Jak się odwołać do elementów a,b,id. Szukałem w google ale tak dziwnego przykładu nie znalazłem i czy to w ogóle jest poprawny format JSON.

Sorki za dział miało iść do przedszkola.
Mlodycompany
skorzystaj sobie z var_dump() a dowiesz się jak dostać się do konkretnego elementu
zegarek84
nie jest to poprawny format, można to było nawet w konsoli js sprawdzić - poprawny format jest naturalnym sposobem zapisu danych w JS... "[1,{"1":{"a":"1","b":3}," za tym masz już błąd, nie masz zdefiniowanego klucza, lub zamiast przecinka powinna być klamra domykająca...
szok
Twój ciąg JSON nie jest poprawny, metoda json_last_error zwraca: JSON_ERROR_SYNTAX

Czyli błąd składni JSON'a
krzychu0808
Przepraszam was bardzo źle przeanalizowałem dokładnie wygląda to tak:
  1. $test = '[1,{"1":{"1":{"a":"1","b":3},"3":{"a":"34","b":2344}}},{"3":{"id":0,"text":"abc"}}]';
  2. $json = json_decode($test,true);
  3. echo var_dump($json);


var_dump zwraca:
  1. array(3) { [0]=> int(1) [1]=> array(1) { [1]=> array(2) { [1]=> array(2) { ["a"]=> string(1) "1" ["b"]=> int(3) } [3]=> array(2) { ["a"]=> string(2) "34" ["b"]=> int(2344) } } } [2]=> array(1) { [3]=> array(2) { ["id"]=> int(0) ["text"]=> string(3) "abc" } } }


Udało się odwołać:
  1. echo $json[1][1][1]['b'];


Dziękuję wszystkim za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.