Php 从URL获取JSON对象

Php 从URL获取JSON对象,php,json,Php,Json,我很难从这个URL获取任何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 =

我很难从这个URL获取任何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;
?>

提供的链接以开头

{ data :
这是有效的javascript,但无效的json。你可以在电脑上测试。要解决此问题,我们可以将
数据
替换为
“数据”


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

从外观上看,您得到的是
{data:{…}
json,非常标准的东西。您可以使用
json\u解码($jsondata,true)如果你想使用数组(我知道我会的)。什么是有效的?谢谢Andrew。已尝试将其设置为true,但仍然没有显示任何内容。这是StackOverflow的另一个例子,Jon,但似乎是我的URL没有。返回的JSON似乎有问题。我的测试返回JSON_ERROR_语法,这可能意味着很多事情,但基本上,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);

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