如何循环原始JSON数据?

Ste*_*fan 1 php json loops

如何使用PHP循环遍历以下RAW数据并获得此结果:

结果:

 NAME1 - SONG1
 NAME2 - SONG2
 NAME3 - SONG3
Run Code Online (Sandbox Code Playgroud)

原始数据:

{"artist":"NAME1","title":"SONG1","album":null,"royaltytrackid":null,"url":null,"image":"test1.jpg","time":1380910069,"localtime":"11:07 AM"},
{"artist":"NAME2","title":"SONG2","album":null,"royaltytrackid":null,"url":null,"image":"test2.jpg","time":1380909866,"localtime":"11:04 AM"},  
{"artist":"NAME2","title":"SONG3","album":null,"royaltytrackid":null,"url":null,"image":"test3.jpg","time":1380909864,"localtime":"11:04 AM"}
Run Code Online (Sandbox Code Playgroud)

Eri*_*lun 5

它看起来像你的输入数据缺少[]周围的列表,这样才能解析它作为JSON,你需要添加这些:

$rawData = <<<EOL
{"artist":"NAME1","title":"SONG1","album":null,"royaltytrackid":null,"url":null,"image":"test1.jpg","time":1380910069,"localtime":"11:07 AM"},
{"artist":"NAME2","title":"SONG2","album":null,"royaltytrackid":null,"url":null,"image":"test2.jpg","time":1380909866,"localtime":"11:04 AM"},  
{"artist":"NAME2","title":"SONG3","album":null,"royaltytrackid":null,"url":null,"image":"test3.jpg","time":1380909864,"localtime":"11:04 AM"}
EOL;

$data = json_decode("[" . $rawData . "]");

foreach ($data as $item) {
    echo $item->artist, " - ", $item->title, "\n";
}
Run Code Online (Sandbox Code Playgroud)

输出:

NAME1 - SONG1
NAME2 - SONG2
NAME2 - SONG3
Run Code Online (Sandbox Code Playgroud)