2016-02-22 50 views
0

我有一个.json文件。我想在我的.php文件中访问这些数据。我有一个变量$ spellId,例如:$ spellId =“SummonerBarrier”;如何在PHP中访问.json数据?

我想通过使用$ spellId从.json文件获取“名称”。 任何想法我可以做到这一点?

我知道这里有很多这样的问题,但我不知道如何用我的代码制作解决方案。

{ 
    "type": "summoner", 
    "version": "6.3.1", 
    "data": { 
     "SummonerBarrier": { 
      "id": "SummonerBarrier", 
      "name": "Barrier", 
      "description": "Shields your champion for 115-455 (depending on champion level) for 2 seconds.", 
      "tooltip": "Temporarily shields {{ f1 }} damage from your champion for 2 seconds.", 
      "maxrank": 1, 
      "cooldown": [ 
       210 
      ] 
     }, 
     "SummonerBoost": { 
      "id": "SummonerBoost", 
      "name": "Cleanse", 
      "description": "Remove..." 
     } 
    } 
} 
+0

你试图使用'json_decode'? http://php.net/manual/en/function.json-decode.php –

+2

获取文件内容,解码json字符串,找到你想要的数据 – Ghost

回答

0

试试这个:

$data = '{ 
    "type": "summoner", 
    "version": "6.3.1", 
    "data": { 
     "SummonerBarrier": { 
      "id": "SummonerBarrier", 
      "name": "Barrier", 
      "description": "Shields your champion for 115-455 (depending on champion level) for 2 seconds.", 
      "tooltip": "Temporarily shields {{ f1 }} damage from your champion for 2 seconds.", 
      "maxrank": 1, 
      "cooldown": [ 
       210 
      ] 
     }, 
     "SummonerBoost": { 
      "id": "SummonerBoost", 
      "name": "Cleanse", 
      "description": "Remove..." 
     } 
    } 
}'; 

$decoded = json_decode($data); 
var_dump($decoded->data->SummonerBarrier->name); 
+0

[Nowdoc; - )](http://php.net /manual/en/language.types.string.php#language.types.string.syntax.nowdoc) –

+0

感谢队友,帮助我。只需要将这个解码后的数据转换为数组,因为它是'stdClass Object'^^ – bastianum

0
$array = json_decode($json, true); 

foreach ($array['data'] as $key => $value) { 
    echo "$key:$value[name]<br />"; 
} 
0
$decodeData = json_decode($data); 
$spellId="SummonerBarrier"; 
$nameToFetch=$decodeData->data->$spellId->name;