【问题标题】:How to get JSON data with PHP如何使用 PHP 获取 JSON 数据
【发布时间】:2015-01-05 15:51:46
【问题描述】:

我是 PHP 新手,我只是想从 JSON 字典中获取一个值。这似乎很简单(至少对我来说),但我遇到了麻烦。我查看了JSON_decode 的 PHP 文档,还查看了“Parsing JSON data from a remote server”,但这并没有达到我想要的效果。它返回我想要的字典项为 0,然后吐出 JSON 文件。然后我查看了“get data from JSON with php”,它什么也没返回。

JSON 示例

{ 
  "ask": 344.28,
  "bid": 343.89,
  "last": 343.97
}

第一次尝试

$jsoncontent=file_get_contents("https://api.bitcoinaverage.com/ticker/global/USD");`
$priceusd=json_decode($json-content);

$lastusd=$priceusd['last'];

echo "Decoded JSON:\n";
echo "$priceusd\n";
echo "Raw JSON:\n";
echo "$jsoncontent\n";

第二次尝试

$result=file_get_contents("https://api.bitcoinaverage.com/ticker/global/USD");
 $result = iconv('UTF-16', 'UTF-8', $result);
 $json = json_decode($result);

 echo $json->last;

我想要的只是 URL 中 JSON 中的字典项之一的值。

谢谢!

【问题讨论】:

  • 您能否提供一个您正在使用的 JSON 的示例结构?
  • { "ask": 344.28, "bid": 343.89, "last": 343.97, } 我想回显最后一个值。
  • 你的试验在哪里?
  • @Jake 你不需要iconv(),直接解码即可。在下面查看 barmar 的答案
  • 这一行$priceusd=json_decode($json-content); 必须是:$priceusd=json_decode($jsoncontent); 变量名中没有“-”。

标签: php json dictionary


【解决方案1】:

假设$data 包含从服务器返回的内容,您可以这样做:

$object = json_decode($data);
$last = $object->last;

或:

$array = json_decode($data, true);
$last = $array['last'];

当您省略 json_decode 的第二个参数时,它会返回一个对象,并且您可以将所需的部分作为对象属性访问。如果你给第二个参数true,它会返回一个关联数组,你可以使用数组表示法访问元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2023-04-08
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多