2012-04-19 16 views
2

使用以下内容,我可以以两种格式显示所有信息为一个数组,但是我希望为变量赋值并使用例如名称而不是完成屏幕转储。如何显示特定的json值而不是打印或转储功能

$ url ='http:// myurl';

$ json = file_get_contents($ url);

$ dump =(var_dump(json_decode($ json,true)));

$ json_output = json_decode($ json); print_r($ json_output)

这可能很容易,我的道歉。

+0

为了澄清,你想访问JSON元素的各个值? – Matthew 2012-04-19 14:48:20

回答

5

您可以使用:

$object = json_decode($json); 

这将创建一个对象,然后您可以访问的性质类似这样..

echo $object->whatever; 

或者您可以使用json_decode这样的:

$array = json_decode($json, TRUE); 

这创建一个数组,您可以访问像这样的个人密钥..

echo $array['whatever']; 
0

您使用面向对象的dot.notation来访问变量名称。尝试这样的:

alert($json_output->varName); 
alert($json_output['varName']); 
1

使用PHP的json_decode()函数应该满足这一点。在你的第一次调用中,你传递TRUE作为第二个参数,所以函数返回一个关联数组。 PHP手册页说明了这一点区别:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 
var_dump(json_decode($json)); 
var_dump(json_decode($json, true)); 

这两个调用的var_dump将输出:

object(stdClass)#1 (5) { 
["a"] => int(1) 
["b"] => int(2) 
["c"] => int(3) 
["d"] => int(4) 
["e"] => int(5) 
} 

array(5) { 
["a"] => int(1) 
["b"] => int(2) 
["c"] => int(3) 
["d"] => int(4) 
["e"] => int(5) 
} 

在这两种情况下,你可以访问各个元素:

$json  = '{"url":"stackoverflow.com","rating":"useful"}'; 

$jsonAsObject = json_decode($json); 
$jsonAsArray = json_decode($json, TRUE); 

echo $jsonAsObject->url . " is " . $jsonAsArray['rating']; 

这将输出:

stackoverflow.com is useful 
相关问题