如何在php中定位嵌套的JSON对象并回显它们?

时间:2016-05-03 22:00:42

标签: php json

好的,所以我认为只要看一下代码就可以得到我想做的事情。

//Get JSON text file (Steam API)
$json = file_get_contents('http://store.steampowered.com/api/appdetails?appids=57690');

//Decode JSON
$game_json = json_decode($json, true);

//Target game name and echo it
echo $game_json['name'];

JSON本身按此顺序排列(非结构化,非常抱歉):

{"57690":{"success":true,"data":{"type":"game","name":"Tropico 4: Steam Special Edition"

所以我的目标是""name":"Tropico 4: Steam Special Edition"",这是我想要在我的页面上回显的内容。我不确定它是否有帮助,但"name":出现一次,我的代码中需要[0]来定位第一个?嵌套是什么阻止了我,或者$game_json['name'];是不正确的定位方式?

非常感谢任何提示和/或帮助。谢谢。

2 个答案:

答案 0 :(得分:3)

将来,请使用print_r($game_json)检查array结构。

<?php
$json = file_get_contents('http://store.steampowered.com/api/appdetails?appids=57690');
$game_json = json_decode($json, true);
echo $game_json['57690']['data']['name'];
//Tropico 4: Steam Special Edition
echo $game_json['57690']['data']['required_age'];
//0
//etc...

答案 1 :(得分:2)

function getCountryCode (callback) {
    ipify(function(err, ip) {
        if(err) return callback(err);
        return callback(null, geoip.lookup(myip).country);
    });
}

exports.retryCheckVPN = function(){
    getCountryCode(function(error, response){
        if (error) throw error;
        if(response.trim() === process.env.VPN.trim()){
            //VPN is ready, do your work
            return response;
        } else {
            throw "VPN not ready";
        }
    });
};