Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]pobranie wartości JSON
Forum PHP.pl > Forum > Przedszkole
abdelpg
Witam. Wie ktoś może co robię źle w odczytywaniu JSONA?
Dodam, że w tym wypadku chcę, by zwróciło wartość 11.28
fragment pliku:
  1. {"statusCode":200,"body":"{\"AK-47 | Aquamarine Revenge (Battle-Scarred)\":{\"price\":11.28,\"image\":\"",\"game\":\"csgo\"},


linie którymi odczytuje
  1. $prices = file_get_contents('BOT/prices.txt');
  2. $prices = json_decode($prices, true);
  3. $price = $prices['body'][$name]['price'];


Neutral
Tak nie możesz odwoływać się do elementu stdClass jak do tablicy bez true w drugim argumencie, ale widzę że masz.

Przykład:
  1. <pre>

  1. <?php
  2. $temp = json_decode('
  3.  
  4. {
  5. "a":1,"b":2,"c":3,"d":{
  6. "a":4,"x":{
  7. "b":2,"seven":1,"eight":{
  8. "nine":4,"k":4,"ast":"*"
  9. }
  10. }
  11. }
  12. }
  13.  
  14. ');
  15.  
  16. echo($temp->{'d'}->{'x'}->{'eight'}->{'k'});
  17. // print_r($temp);
  18. ?>

  1. <pre>

Moim zdaniem dobrze jest używać znaczników <pre>...</pre>, gdy używa się np. print_r(), czy var_dump(), bo wtedy formatuje rezultat zapytania.

http://www.json.org/
http://php.net/manual/en/function.json-decode.php
http://php.net/manual/en/language.types.ob....object.casting
http://php.net/manual/en/reserved.classes.php

Twoje zapytanie zwraca NULL, więc masz coś źle napisane w formacie JSON.
Poprawiłem Twój kod, jest poniżej.
  1. <?php
  2. $temp = json_decode('
  3. {
  4. "statusCode":200,"body":{
  5. "AK-47 | Aquamarine Revenge (Battle-Scarred)":{
  6. "price":11.28,"image":"random_image","game":"csgo"
  7. }
  8. }
  9. }
  10. ',true);
  11. echo $temp['body']['AK-47 | Aquamarine Revenge (Battle-Scarred)']['price'];
  12. ?>
abdelpg
Dzięki. Źle się pobierał JSON. Myślałem, że tak ma to wyglądać smile.gif
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.