如何在PHP中获取JSON的值?

时间:2015-09-02 20:03:13

标签: php arrays json api object

我想知道如何获取JSON中歌词的文本值?

JSON:

/^\S.*\S$/gm

如何在PHP中阅读?

如何读取PHP中的文本值?我的代码:

{
    "type": "exact",
    "art": {
        "id": "3ade68b3g1f86eda3",
        "name": "Madonna",
        "url": "http:\/\/www.vagalume.com.br\/madonna\/"
    },
    "mus": [{
        "id": "3ade68b6g8e27fda3",
        "name": "Holiday",
        "url": "http:\/\/www.vagalume.com.br\/madonna\/holiday.html",
        "lang": 2,
        "text": "Holiday Celebrate \nHoliday Celebrate \nIf we took a holiday \nTook some time to celebrate \nJust one day out of life \nIt would be, it would be so nice (chorus)\n\nEverybody spread the word \nWe´re gonna have a celebration \nAll across the world \nIn every nation \nIt´s time for the good times \nForget about the bad times, oh yeah \nOne day to come together \nTo release the pressure \nWe need a holiday \n\n(chorus)\n\nYou can turn this world around \nAnd bring back all of those happy days \nPut your troubles down \nIt´s time to celebrate \nLet love shine \nAnd we will find \nA way to come together \nAnd make things better \nWe need a holiday \n\n(chorus)\n\nHoliday Celebrate \nHoliday Celebrate \nHoliday Celebrate \nHoliday Celebrate \nHoliday, Celebration \nCome together in every nation",
        "translate": [{
            "id": "3ade68b6g417afda3",
            "lang": 1,
            "url": "http:\/\/www.vagalume.com.br\/madonna\/holiday-traducao.html",
            "text": "[Feriado]\nFeriado, comemore \nFeriado, comemore \nSe nós tirássemos uma folga \nTirássemos um dia para comemorar \nSó um dia da vida\nSeria tão, seria tão legal (refrão)\n\nTodo mundo espalhando a notícia \nNós vamos fazer uma comemoração \nPelo mundo inteiro \nEm todas as nações \nÉ hora dos bons momentos \nEsqueça os maus momentos oh yeah \nUm dia para nos unirmos \nPara aliviar a pressão \nNós precisamos de uma folga \n\n(refrão)\n\nVocê pode mudar este mundo \nE trazer de voltas aqueles dias felizes\nAcabe com seus problemas \nÉ hora de comemorar\nDeixe o amor brilhar \nE encontraremos \nUm jeito de nos unirmos \nE fazer as coisas melhor \nPrecisamos de uma folga \n\n(refrão)\n\nFeriado, comemore \nFeriado, comemore \nFeriado, comemore \nFeriado, comemore \nFeriado, celebração\nUnam-se em todas as nações"
        }]
    }],
    "badwords": false
}

我想读这个:

<?php
$art=$_GET['art'];
$mus=$_GET['mus'];
$json_string = 'http://api.vagalume.com.br/search.php?art='.$art.'&mus='.$mus;

$jsondata = file_get_contents($json_string);
$jsondata2=utf8_encode($jsondata); 
$obj = json_decode($jsondata2);

echo "<b>".$obj->{'art'}->{'name'}."</b>\n";
echo "<br>\n";
echo $obj->['mus']->{'0'}->{'text'};
print $obj;
?>

修改

用户Rocket Hazmat给我的解决方案完美无缺。谢谢。

1 个答案:

答案 0 :(得分:2)

只需使用:

$obj->mus[0]->text

另外,当你可以$obj->{'art'}->{'name'}时,我建议:

$obj->art->name

{}语法仅在生成字符串时才有用,例如:

$obj->{$var.'string'}