我正在尝试从XML Feed的属性获取JSON Feed输出。我可以从XML中获取数据,但是,我无法正确格式化。错误似乎是json_encode
未将大括号添加到输出日期。这是我到目前为止的代码:
<?php
$url = 'http://cloud.tfl.gov.uk/TrackerNet/LineStatus';
if(!$xml = simplexml_load_file($url))
{
die("No xml for you");
}
$linestatus = array();
foreach ($xml->LineStatus as $line)
{
echo $line->Line['Name'];
echo $line->Status['Description'];
}
header('Content-Type: application/json');
print_r(json_encode($linestatus));
?>
答案 0 :(得分:0)
echo
正在搞砸一切。我认为您打算附加到linestatus
,根据您的代码保留为空。
$linestatus[] = array(
"name" => $line->Line['Name'],
"description" => $line->Status['Description']
);
您还需要使用echo
代替print_r
来实际发出JSON。
答案 1 :(得分:0)
您将$linestatus
声明为数组,然后在最终编码并尝试输出之前不要在其中放入任何内容。当然它不会按预期工作!相反,您应该用值填充它:
$linestatus = array();
foreach ($xml->LineStatus as $line)
{
$linestatus[] = $line->Line;
}
header('Content-Type: application/json');
print_r(json_encode($linestatus));
答案 2 :(得分:0)
问题在于您没有将名称和描述存储到数组中。
试试这个:
foreach ($xml->LineStatus as $line)
{
$linestatus[] = array('name' => $line->Line['Name']);
$linestatus[] = array('description' => $line->Line['Description']);
}