簡體   English   中英

從PHP中的外部網址解析JSON數據時出現問題

[英]Problem parsing JSON data from external url in PHP

我真的是json代碼中的新手,甚至是javascript代碼,但到目前為止我都知道了。 我可以從具有相同信息的本地文件中獲取json數據,但不能從此外部URL獲取: https : //s3.amazonaws.com/dolartoday/data.json

這是我的代碼:

<?php

$json = file_get_contents("https://s3.amazonaws.com/dolartoday/data.json", 'jsonp');
$data = json_decode($json, true);

echo $data['USD']['dolartoday'];

?>

預期的結果,像這樣:6124.24

注意:此代碼是可以的,我從具有相同值的本地文件中獲取數據,但我無法從此外部URL中專門獲取json數據。 我還添加了“ jsonp”,但這沒有用。

您在S3上的JSON文檔無效。

JSON必須使用UTF-8,但您似乎在其中具有擴展的ASCII字符。

正確的錯誤檢查將發現這一點。

$data = json_decode($json, true);
if (is_null($data)) {
    echo json_last_error_msg();
    die;
}

會打印出來的

Malformed UTF-8 characters, possibly incorrectly encoded

感謝@Stephen的澄清,我找到了解決問題的方法。

<?php
$json = file_get_contents("https://s3.amazonaws.com/dolartoday/data.json", 'jsonp');
$utf8 = utf8_decode($json); //decode UTF-8
$data = json_decode($utf8, true);

echo $data['USD']['dolartoday'];
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM