php - json_decode($data, true);不起作用

标签 php json

我正在尝试通过 Google 财经访问股票行情

这样做:

$quote = file_get_contents('http://finance.google.com/finance/info?client=ig&q=VSE:APG1L'); 
$json = str_replace("\n", "", $quote);
$data = substr($json, 4, strlen($json) -5);
print_r($data);  
$json_output = json_decode($data, true);
print_r($json_output);  
echo "\n".$json_output['l']; 

json_decode 假设给我一个带有键和值的普通数组,但它没有。

最佳答案

如果您在尝试 json_decode() 后查看 json_last_error(),您会发现您得到:

JSON_ERROR_UTF8 Malformed UTF-8 characters, possibly incorrectly encoded

试试这个:

$quote = file_get_contents('http://finance.google.com/finance/info?client=ig&q=VSE:APG1L');
$json = substr($quote, 4, -5);
$json_output = json_decode($json, true, JSON_UNESCAPED_UNICODE);
print_r($json_output);

参见:http://3v4l.org/jkInl

请注意 JSON_UNESCAPED_UNICODE 仅适用于 php 5.4

另一种选择是...

$quote = utf8_decode($quote);

...在你获取它之后。这会将欧元符号转换为 ? 字符。可能不是你想要的,但至少你得到了 json_decode 来返回一个数组给你。

更新:查看此处了解更多信息:

PHP decoding and encoding json with unicode characters

关于php - json_decode($data, true);不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15811332/

相关文章:

arrays - ios swift - 将 AnyObject 列表分配给字典键

.net - ServiceStack.Text 在反序列化可为 null 的 bool 值时出现奇怪的行为

javascript - 如何通过ajax获取json字符串并转换为php数组?

php - 如何在PHP中显示多个数组值?

php - 在 cakephp 中保存散列密码

php - Docker 运行 php : Interactive shell

php - CSS 如何链接到 <head>

javascript - json.parse 意外的 token 错误

javascript - 如何使用本地 JSON 数据加载 TreePanel?

php - 使用mysqldump在php中备份mysql数据库