如何使用 php 将这个 JSON url 解析为 HTML 表/列表的授权
Posted
技术标签:
【中文标题】如何使用 php 将这个 JSON url 解析为 HTML 表/列表的授权【英文标题】:How to parse this JSON url with Authorization to HTML table/ list with php 【发布时间】:2021-11-07 13:09:47 【问题描述】:我正在尝试从这里获取此 JSON 数据:https://gw.bilinfo.net/listingapi/api/export
他们在这里有一个“如何工作表”:https://developer.bilinfo.net/content/Bilinfo_XML_API.pdf
我可以通过 Authorization 连接并获取原始 JSON,但我无法使用数据制作表格。
这是我目前的代码:
<?php
$url = 'https://gw.bilinfo.net/listingapi/api/export';
// provide your username and password here
$auth = base64_encode("demo:ocfB6XzF73");
// create HTTP context with basic auth
$context = stream_context_create([
'http' => ['header' => "Authorization: Basic $auth"]
]);
// query for data
$data = file_get_contents($url, false, $context);
$escaped = json_encode($data);
/*Initializing temp variable to design table dynamically*/
$temp = "<table>";
/*Defining table Column headers depending upon JSON records*/
$temp .= "<tr><th>Bilmodel</th>";
$temp .= "<th>Motor</th>";
$temp .= "<th>Drivmiddel</th></tr>";
/*Dynamically generating rows & columns*/
for ($i = 0; $i < sizeof($escaped["Vehicles"]); $i++)
$temp .= "<tr>";
$temp .= "<td>" . $escaped["Vehicles"][$i]["Model"] . "</td>";
$temp .= "<td>" . $escaped["Vehicles"][$i]["Motor"] . "</td>";
$temp .= "<td>" . $escaped["Vehicles"][$i]["Propellant"] . "</td>";
$temp .= "</tr>";
/*End tag of table*/
$temp .= "</table>";
/*Printing temp variable which holds table*/
echo $temp;
?>
【问题讨论】:
如何访问带有图片的底层数组等等。如何联系他们? 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:解决方案 1。 JSON_FORCE_OBJECT 对 PHP 数组值进行编码,那么即使输入数组没有任何索引,每个数组元素也会被添加到索引中。
所以你可以使用
$escaped = json_encode($data, JSON_FORCE_OBJECT);
您的代码将打印表格。
解决方案 2。
目前json_encode
将数据转换为 StdObject,您可以在其中使用箭头符号读取数据。因此,在表格中打印数据只需使用 foreach 函数读取带箭头符号的 Vehicles 对象。
/*Dynamically generating rows & columns*/
foreach ($escaped->Vehicles as $vehicle)
$temp .= "<tr>";
$temp .= "<td>" . $vehicle->Model . "</td>";
$temp .= "<td>" . $vehicle->Motor . "</td>";
$temp .= "<td>" . $vehicle->Propellant . "</td>";
$temp .= "</tr>";
【讨论】:
哇,这太疯狂了 - 它就像一个魅力 c,) - 非常感谢! @MartinWichmand 你只需要删除 for 循环然后添加上面的 foreach。另外,请确保像以前一样在没有 JSON_FORCE_OBJECT 的情况下执行 json_encode。像这样 json_encode(data);然后foreach 感谢它的正常工作......非常感谢!以上是关于如何使用 php 将这个 JSON url 解析为 HTML 表/列表的授权的主要内容,如果未能解决你的问题,请参考以下文章
如何将 YouTube JSON 解析为 PHP? [复制]