2014-11-09 138 views
1

我是PHP新手,我只是想从JSON字典中获取一个值。这看起来很简单(至少对我来说),但我遇到了麻烦。我查看了JSON_decode的PHP文档,我也看了一下“Parsing JSON data from a remote server”,但没有做到我想要的。它将我想要的字典项目返回为0,然后只是吐出JSON文件。然后我看了看“get data from JSON with php”,那只是什么都没有返回。如何使用PHP获取JSON数据

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; 

我要的是价值JSON中的一个字典项目的URL。

谢谢!

+1

您能否提供您正在使用的JSON的示例结构? – 2014-11-09 05:17:02

+0

'{ “ask”:344.28, “bid”:343.89, “last”:343.97, }'我想回显最后一个值。 – Jake 2014-11-09 05:21:06

+0

你的试验在哪里? – Ghost 2014-11-09 05:25:59

回答

7

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

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

或:

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

当你离开的第二个参数json_decode,它返回一个对象,你访问你想要的部分作为对象属性。如果给出第二个参数true,它将返回一个关联数组,并使用数组表示法访问该元素。