Php 如何解决json解码返回空错误

Php 如何解决json解码返回空错误,php,json,Php,Json,我的API URL在浏览器中返回代码,如下所示。但json\u解码($API\u URL,true)返回null 我检查了json\u last\u error(),返回4(json错误语法)。 它与json解码(file\u get\u contents($api\u url),true)一起工作 为什么它不能与json_解码一起使用。请帮助 {"dataset":{"id":27153572,"dataset_code":"20MICRONS_A_DEBT","database_code":

我的API URL在浏览器中返回代码,如下所示。
json\u解码($API\u URL,true)返回null
我检查了
json\u last\u error(),返回4(json错误语法)。
它与json解码(file\u get\u contents($api\u url),true)一起工作
为什么它不能与json_解码一起使用。请帮助

{"dataset":{"id":27153572,"dataset_code":"20MICRONS_A_DEBT","database_code":"DEB","name":"20 Microns Limited,Total Debt","description":"\u003cp\u003e20 Microns Limited(NSE:20MICRONS)-Total Debt(Annual)\u003c/p\u003e","refreshed_at":"2018-09-21T08:04:08.278Z","newest_available_date":"2018-03-31","oldest_available_date":"2005-03-31","column_names":["PERIOD","STANDALONE","CONSOLIDATED"],"frequency":"annual","type":"Time Series","premium":true,"limit":null,"transform":null,"column_index":null,"start_date":"2005-03-31","end_date":"2018-03-31","data":[["2018-03-31",128.56,133.68],["2017-03-31",144.9,151.73],["2016-03-31",155.18,163.41],["2015-03-31",152.8,164.62],["2014-03-31",162.01,176.64],["2013-03-31",148.49,164.73],["2012-03-31",144.67,158.6],["2011-03-31",81.42,120.31],["2010-03-31",84.35,87.35],["2009-03-31",58.62,58.62],["2008-03-31",46.52,null],["2007-03-31",42.46,null],["2006-03-31",40.03,null],["2005-03-31",38.98,null]],"collapse":null,"order":null,"database_id":14992}}

你想做的事毫无意义
$api_url
只是一个url,因此当您尝试解码它时,它没有
json
结构,它将抛出一个exeption

您应该解码此url返回给您的数据

所以首先您应该从url获取数据,然后使用
json\u decode($api\u url,true)


要获取数据,您可以使用
file\u get\u contents
curl

您试图做的事情毫无意义
$api_url
只是一个url,因此当您尝试解码它时,它没有
json
结构,它将抛出一个exeption

您应该解码此url返回给您的数据

所以首先您应该从url获取数据,然后使用
json\u decode($api\u url,true)


要获取数据,您可以使用
文件\u获取内容
卷曲
道具,向击中头部的mulder提供道具,但我想为您介绍一下

文件\u获取\u内容()的目的: file_get_contents()函数是PHP中的内置函数,用于将文件内容读入字符串

请注意,“文件”可以是驻留在web服务器上的文件,也可以是远程文件(URL),从本质上讲,远程文件将返回web文档

json_decode()的用途: json_decode()函数是PHP中的内置函数,用于解码json字符串。它将JSON编码的字符串转换为PHP变量

考虑到这一点,您可以看到对无效的json字符串或URL执行json_解码会将结果显示为NULL

json_decode('https://www.website.com') 

这就是你正在做的事情。在json解码中执行文件内容首先将URL/文件(“”)转换为字符串,然后json解码将包含json的字符串转换为数组。

支持u\u mulder,他一针见血,但我想为您详细介绍一下

文件\u获取\u内容()的目的: file_get_contents()函数是PHP中的内置函数,用于将文件内容读入字符串

请注意,“文件”可以是驻留在web服务器上的文件,也可以是远程文件(URL),从本质上讲,远程文件将返回web文档

json_decode()的用途: json_decode()函数是PHP中的内置函数,用于解码json字符串。它将JSON编码的字符串转换为PHP变量

考虑到这一点,您可以看到对无效的json字符串或URL执行json_解码会将结果显示为NULL

json_decode('https://www.website.com') 

这就是你正在做的事情。执行json解码中的文件内容首先将URL/文件(“”)转换为字符串,然后json解码将包含json的字符串转换为数组。

因为
$api\u URL
是URL而不是json数据。理解区别吗?因为
$api\u url
是一个url而不是json数据。明白其中的区别吗?