使用 php 从 URL 获取 JSON 对象


Get JSON object from URL with php

我有来自网址这个

[{"user_id":"3932131","username":"DanielDimitrov","count300":"1677134","count100":"239025","count50":"41207","playcount":"17730","ranked_score":"1413977663","total_score":"7355146958","pp_rank":"35848","level":"95.5852","pp_raw":"1582.26","accuracy":"97.88556671142578","count_rank_ss":"42","count_rank_s":"337","count_rank_a":"120","country":"BG","events":[]}]

我的PHP是这个

$json = file_get_contents('url');
    $obj = json_decode($json);
    echo $obj->user_id;
    echo 'Username: '.$obj['username'].'<br>';
    echo 'PP: '.(int)$obj['pp_raw'].'<br>';
    echo 'Level: '.(int)$obj['level'].'<br>';
    echo 'Play count: '.$obj['playcount'].'<br>';

我尝试从 url 中删除括号并运行代码,但我得到它带有括号......如何删除它们?

<?php
$json = '[{"user_id":"3932131","username":"DanielDimitrov","count300":"1677134","count100":"239025","count50":"41207","playcount":"17730","ranked_score":"1413977663","total_score":"7355146958","pp_rank":"35848","level":"95.5852","pp_raw":"1582.26","accuracy":"97.88556671142578","count_rank_ss":"42","count_rank_s":"337","count_rank_a":"120","country":"BG","events":[]}]';
    $in = array("[{", "}]");
    $out = array("{", "}");
    $obj = json_decode(str_replace($in, $out, $json));
    echo $obj->user_id;
    echo 'Username: '.$obj->username.'<br>';
    echo 'PP: '.(int)$obj->pp_raw.'<br>';
    echo 'Level: '.(int)$obj->level.'<br>';
    echo 'Play count: '.$obj->playcount.'<br>';
?>

$obj 是一个包含 1 个元素的数组。

简短的解决方法是,先做$obj = $obj[0]

然后你可以做$obj["user_id"]等等。