2016-07-26 43 views
0

这是JSON文件:无法使用PHP获取JSON数据。为什么?

// [{ “ID”: “5417778”, “T”: “TATAMTRDVR”, “E”: “NSE”, “L”: “329.80” ,“l_fix”:“329.80”,“l_cur”:“Rs.329.80”,“s”:“0” ,“ltt”:“11:11 AM GMT + 5:30”,“lt”:“Jul 26 ,“格林威治标准时间上午11:11”,“lt_dts” :“2016-07-26T11:11:45Z”,“c”:“-0.35”,“c_fix”:“-0.35”,“cp” “-0.11”, “cp_fix”: “-0.11”, “CCOL”: “CHR”, “pcls_fix”: “330.15”}]

而且我的代码,

<?php 
$json = file_get_contents('http://finance.google.com/finance/info?q=NSE:TATAMTRDVR'); 
$obj = json_decode($json); 
echo $obj->id; 
?> 

显示错误消息,是,

通知:试图得到非对象的属性在C:\ XAMPP \ htdocs中\鳍\ latest_stock.php线

+0

'print_r($ obj)'并告诉我数据来自哪里。 –

+2

//正在阻止对象被处理 – jeff

+0

@Anant看起来'//'包含在url的输出中... – jeroen

回答

1

这不是一个有效的json。从json响应中删除“//”,你的代码将正常工作。

+0

来自http://finance.google.com/finance/info?q=NSE:TATAMTRDVR的回复以“//”作为前缀。 – Deepak

+0

是的,我明白了。现在正在工作。 – Nerazzurri

0

的对象包含在一个阵列内,所以你需要这样做:

echo $obj[0]->id; 

代替

echo $obj->id; 

希望这有助于。

+0

不,它不工作 – Nerazzurri

+0

你在得到什么 –

+0

我得到同样的错误。 – Nerazzurri

0

首先,将其转换为有效的JSON。首先删除斜杠(“//”)。

<?php 
$response = file_get_contents('http://finance.google.com/finance/info?  q=NSE:TATAMTRDVR'); 
$modifiedResponse = str_replace('// ','',$response); 
$obj = json_decode($modifiedResponse); 
echo $obj[0]->id; 
?>