Autor Zpráva
Hans225
Profil *
Zdravím,
poprosil bych o pomoc s tímto problémem.

Snažím se tahat údaje z veřejně dostupných statistik jedné hry a ty pak dále využívat. Po zpracování dat (převod z JSON) pak získám například takováto data:

{"result":"success","status":"success","data":[{"id":335854719,"kit":"3","kitName":"Engineer","level":27,"isMaxLevel":false,"levelUpProgression":10,"levelDescription":"Chief Warrant Officer Gold","xp":62560,"xpForNextLevel":615000,"mugShot":"73-113-224.png","isMain":false,"name":"Johnny[CZ]"},{"id":319459078,"kit":"2","kitName":"Medic","level":6,"isMaxLevel":false,"levelUpProgression":92,"levelDescription":"Private First Class Gold","xp":27134,"xpForNextLevel":29250,"mugShot":"72-98-188.png","isMain":false,"name":"Czech_made_man"},{"id":316426948,"kit":"0","kitName":"Recon","level":21,"isMaxLevel":false,"levelUpProgression":23,"levelDescription":"First Sergeant Gold","xp":85197,"xpForNextLevel":358455,"mugShot":"74-123-254.png","isMain":true,"name":"Johncze"}]}

Abych získal potřebná čísla, používám toto:

preg_match('#\{"id":(.*?),"kit":"(.+?)","kitName":"(.+?)","level":(.+?),"isMaxLevel":(.+?),"levelUpProgression":(.+?),"levelDescription":"(.+?)","xp":(.+?),"xpForNextLevel":(.+?),"mugShot":"(.+?)","isMain":(.+?),"name":"(.+?)"\}#', $allSoldiers, $complete);

V tomto se pořádně nevyznám, takže nevím, zda se jedná o ideální řešení, ale prozatím to dělá, co potřebuji, až na jednu věc. Získám takto pouze 12 údajů, ačkoliv na ukázkových datech jich je 36 (je to výpis všech postav na jednom účtu, každá postava má vždy 12 údajů, ale počet postav na každém účtu může být samozřejmě různý). Jak zařídím, aby to prolezlo všechna data a ne pouze jakoby první postavu?

Předem děkuji za rady
Tori
Profil
Funkce json_decode by vám to mohla usnadnit.
Hans225
Profil *
Díky moc, o tom jsem nevěděl, vypíše mi to všechna data do polí a s tím už umím jakžtakž pracovat :)
Hans225
Profil *
Tak jsem se radoval trochu předčasně :)

Například některá data jsou o něco komplexnější viz. http://pastebin.com/xEkYGF4t (kvůli délce jsem to nahrál tam) a

po provedení funkce json_decode pak var_dump zobrazí:

array
  'result' => string 'success' (length=7)
  'status' => string 'success' (length=7)
  'data' => 
    array
      'WeaponStats' => 
        array
          0 => 
            array
              ...
          1 => 
            array
              ...
          2 => 
            array
              ...
          3 => 
            array
              ...
          4 => 
            array
              ...
          5 => 
            array
              ...
          6 => 
            array
              ...
atd.


Zkoušel jsem nastavit i větši maximální hloubku (depth u json_decode), ale také bez výsledku.
Nějaký nápad? Díky
Tori
Profil
Pokud používáte Xdebug, tak je výpis vnořených polí omezen na 3 úrovně (výchozí hodnota), viz nastavení xdebug.var_display_max_depth.
S výsledkem json_decode to nemá nic společného, jde o vlastnost var_dump.
Hans225
Profil *
Opět moc děkuji. Vyřešeno.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: