从URL困难中获取JSON对象

时间:2015-09-29 13:28:47

标签: php json

我在抓取此网址中的任何JSON信息时遇到了困难。

我已经尝试了其他JSON代码段,但它们似乎有效,所以我不确定它是否是URL结构化的方式。

以下基本示例。

<?php
    $json = file_get_contents('http://nhs-sh.cfpreview.co.uk/api/version/fetchLatestData?dataType=Clinics&versionNumber=-1&uuID=website&dt=');
    $obj = json_decode($json);
    echo "Body: " . $obj->Body;
?>

1 个答案:

答案 0 :(得分:1)

提供的链接以

开头
{ data :

这是有效的javascript但无效的json。您可以在http://jsonlint.com上对其进行测试。要解决此问题,我们可以将data替换为"data"

$json = file_get_contents('http://nhs-sh.cfpreview.co.uk/api/version/fetchLatestData?dataType=Clinics&versionNumber=-1&uuID=website&dt=');
$obj = json_decode($json);

if (json_last_error() !== JSON_ERROR_NONE) { //check if there was an error decoding json
    $json = '{ "data" :'. substr(trim($json), 8); // replace the first 8-1 characters with { "data" :
    $obj = json_decode($json); 
}

print_r($obj->data); //show contents of data

请注意,此修复程序取决于数据源,例如如果他们将data更改为dataset。正确的措施是要求开发人员修复他们的json实现。