Próbuję zdekodować ciąg JSON do tablicy, ale pojawia się następujący błąd.
Błąd krytyczny: nie można użyć obiektu typu stdClass jako tablicy w C: \ wamp \ www \ temp \ asklaila.php w linii 6
Oto kod:
<?php
$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj['Result']);
?>
$ob->Result
zamiast tego miał dostęp .Odpowiedzi:
Zgodnie z dokumentacją musisz określić, czy chcesz obiekt tablicy asocjacyjnej zamiast obiektu
json_decode
, będzie to kod:źródło
Spróbuj tego
źródło
Jest to wkład późno, ale jest ważna sprawa do odlewania
json_decode
z(array)
.Rozważ następujące:
Jeśli
$jsondata
kiedykolwiek zostanie zwrócony jako pusty ciąg (jak z mojego doświadczenia wynika, że często),json_decode
zwróciNULL
, powodując błąd Ostrzeżenie: Podano niepoprawny argument dla foreach () w wierszu 3 . Możesz dodać wiersz kodu if / then lub operatora trójskładnikowego, ale IMO jest czystsze, aby po prostu zmienić wiersz 2 na ...... chyba że
json_decode
narazisz miliony dużych tablic naraz, w takim przypadku, jak wskazuje @ TCB13, wydajność może zostać negatywnie wpłynięta.źródło
Na wypadek, gdybyś pracował na php mniejszym niż 5.2, możesz skorzystać z tego zasobu.
http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/
http://mike.teczno.com/JSON/JSON.phps
źródło
Zgodnie z funkcją dokumentacji PHP
json_decode
ma parametr o nazwie assoc, który przekształca zwrócone obiekty w tablice asocjacyjnePonieważ parametr assoc jest
FALSE
domyślnie, musisz ustawić tę wartość naTRUE
, aby pobrać tablicę.Przeanalizuj poniższy kod pod kątem przykładowej implikacji:
które wyjścia:
źródło
Spowoduje to również zmianę na tablicę:
źródło
json_decode($object, true);
true
json_decode
rzutowanie + jest 45% szybsze niż uruchamianie obu smakówjson_decode
. Z drugiej strony oba są tak szybkie, że jeśli nie potrzebujesz dosłownie tysięcy dekodowań, różnica jest znikoma.json_decode
obsługa drugiego argumentu, gdy zostanie ustawionyTRUE
, zwróciArray
zamiaststdClass Object
. Sprawdź stronę Manualjson_decode
funkcji, aby zobaczyć wszystkie obsługiwane argumenty i szczegóły.Na przykład spróbuj tego:
źródło
Więc jeśli chcesz tablicę, możesz przekazać drugi argument jako „true” w
json_decode
funkcji.źródło
mam nadzieję, że to Ci pomoże
Użyj funkcji dekodowania Json
Pętle w tablicy JSON w php
Wynik : systemy komputerowe (sieci)
źródło
w PHP json_decode konwertuj dane json na tablicę powiązaną z PHP
Na przykład:
$php-array= json_decode($json-data, true); print_r($php-array);
źródło
Spróbuj tego
źródło
Spróbuj tak:
źródło