获取特定的JSON数据而无需解码多个链接

时间:2018-10-20 18:07:44

标签: php html json api steam

我在从解码的JSON文件中获取正确的数据时遇到问题。我不知道我的问题是否正确,因为我现在真的不知道我在做什么。

所以,这就是我不想要做的事情。

    $ln = 'https://api.steamprices.net/v2/csgoprices/?id='.market_hash_name.'&key=XXX';
    $link1 = file_get_contents($ln);
    $myarray1 = json_decode($link1, true);

   echo $myarray1['median_price'];

我试图获取代码中正在加载的每个蒸汽蒙皮的价格。该代码的作用是为我加载的每个项目加载此api链接。因此,如果我有50个项目,则此链接将被加载50次,而API则不接受。

我想做的是,我想加载一次,然后从该确切链接中获取每个商品的价格。该链接如下所示:

https://api.steamprices.net/v2/csgoprices/?&key=XXX

因此,可以说我一次加载了它,然后当我想对它应用 market_hash_name 时,该怎么办?

我认为是这样的。

    $priceJson = file_get_contents('https://api.steamprices.net/v2/csgoprices/?key=XXX');
    $priceData = json_decode($priceJson, true);

    echo $priceData[''.$market_hash_name.'']['price'];

但是它似乎不起作用。我为这个混乱的解释感到抱歉,对此我不熟悉。

请注意,api链接的示例响应如下:

{
  "-r-H1Z1 Shirt": {
    "price": 0.11,
    "image": "https://steamcommunity-a.akamaihd.net/economy/image/iGm5OjgdO5r8OoJ7TJjS39tTyGCTzzQwmWl1QPRXu8oaf69-NOHLAbqw_23aLe8AcRQ8-3uyKA7_CGvsJYds9U65FMF7i6AbXTJ8PDm57EliZdK7KLPuuh3dxC3m4m0ihzss0MKE6NtIt4qs-JukOX73WgETXYze_pxEBA",
    "game": "h1z1"
  },
  "2016 Invitational Crate": {
    "price": 0.09,
    "image": "https://steamcommunity-a.akamaihd.net/economy/image/iGm5OjgdO5r8OoJ7TJjS39tTyGCTzzQwmWl1QPRXu8oaf69-NOHLAbqw_23aLe8AcRQ8-3uyKA7_CGvsJYds9U65FMF7i6APSjJ6BjX9rGBYZ9ioCPzysSX6hNNacA",
    "game": "h1z1"
  },
  "ANGRYPUG Motorcycle Helmet": {
    "price": 0.17,
    "image": "https://steamcommunity-a.akamaihd.net/economy/image/iGm5OjgdO5r8OoJ7TJjS39tTyGCTzzQwmWl1QPRXu8oaf69-NOHLAbqw_23aLe8AcRQ8-3uyKA7_CGvsJYds9U65FMF7i6AbXTJ8PDm57EliZdK7KLPuuh3WySnxyXoUgz870MKd7sFTkZq98oW1ORiqAVsCUYfbNu3SUQqvUSGyY__iEw",
    "game": "h1z1"
  },

另一个输出

{
    "name":"Aces High Pin",
    "price":1210,
    "have":2,
    "max":9,
    "rate":95,
    "tr":0
    }

1 个答案:

答案 0 :(得分:0)

好吧,您提供的json字符串无效,但是类似的东西可能会对您有所帮助

<?php

$jsonData=file_get_contents("json.file"); // simply contains your json string as posted
$jsonArray=json_decode($jsonData,true);
$jsonObject=json_decode($jsonData);

$list_of_MHN=array("2016 Invitational Crate","ANGRYPUG Motorcycle Helmet");

print_r($jsonArray);
exit;

foreach($jsonArray as $hash_name=>$arr){
    if(in_array($hash_name,$list_of_MHN)){
        print_r($arr);
    }
}

for($i=0;$i<count($list_of_MHN);$i++){
    if(isset($jsonArray[$list_of_MHN[$i]])){
        print_r($jsonArray[$list_of_MHN[$i]]);
    }
}


for($i=0;$i<count($list_of_MHN);$i++){
    if(isset($jsonObject->$list_of_MHN[$i])){
        print_r($jsonObject->$list_of_MHN[$i]);
    }
}

?>