JSON解码到PHP无法正常工作

时间:2014-09-12 22:41:00

标签: php json object

我尝试将JSON对象放入PHP变量中,但它无效。当我var_dump时,它会显示NULL

PHP:

<?php
$json   = utf8_encode(file_get_contents('http://socialclub.rockstargames.com/ajax/stat/1/profile_body/sta1/drantifat'));
$data   = json_decode($json, false);

$money = $data->tplc->stats;   // -> What do i have to do to reach the id:GTA Online Cash and use the val: $33.9K ?
?>

JSON文件示例:(随着时间的推移而变化)

{"cid":0,"ttl":"Grand Theft Auto V",
"ishs":false,"issa":false,"istc":false,"htl":true,"tlc":"text",
"tlt":"View Stats","tlh":"/member/drantifat/games/gtav/career/overview",
"iso":false,"cmng":false,"order":0,"uid":0,"ttc":0,
"tplc":"{\"game\":\"GTAV\",\"stats\":[{\"id\":\"Game Progress\",\"val\":\"58.77%\"},
{\"id\":\"Missions Passed\",\"val\":\"55\"},{\"id\":\"Playing Time\",\"val\":\"29:00:33\"},
{\"id\":\"GTA Online RP\",\"val\":\"2.4M\"},{\"id\":\"GTA Online Rank\",\"val\":\"128\"},
{\"id\":\"GTA Online Cash\",\"val\":\"$33.9K\"},
{\"id\":\"GTA Online Playing Time\",\"val\":\"529:44:12\"}],
\"url\":\"/member/drantifat/games/gtav/career/overview\"}","isa":false,"cnt":""}

还有人可以帮我解决我在PHP文件中提到的内容吗?

1 个答案:

答案 0 :(得分:1)

tplc不是JSON对象,它是一个本身就是JSON的字符串。

<?php
$json = utf8_encode(file_get_contents('http://socialclub.rockstargames.com/ajax/stat/1/profile_body/sta1/drantifat'));
$data = json_decode($json, false);
$tplc = json_decode($data->tplc);
$money = $tplc->stats;
?>

具体获取金钱价值:

<?php
$json = utf8_encode(file_get_contents('http://socialclub.rockstargames.com/ajax/stat/1/profile_body/sta1/drantifat'));
$data = json_decode($json, false);
$tplc = json_decode($data->tplc);
$stats = $tplc->stats;
foreach ($tplc->stats as $stat) {
    if ($stat->id == 'GTA Online Cash') {
        $money = $stat->val;
        break;
    }
}
echo $money;
?>