如何解码json和设置json值php可用


How to decode json and set value in json to php available ?

我有这样的json $json

{"name":"peter","availability":"available"}

我想解码并设置值为php可用和echo,但没有任何显示?,我使用这个代码

<?PHP
                 $decode = json_decode($json, true);
                 $availability = $decode[availability];
                 echo $availability;  
?>

使用

$availability = $decode["availability"];

如果使用

$availability = $decode[availability];

它会发出一个通知

Notice: Use of undefined constant availability - assumed 'availability'

但是你的代码是正确的,应该显示上述通知的值,除非$json字符串不是你添加的。

代码

<?php 
$arr = array('name' => peter, 'availability' => available); 
$json = json_encode($arr); 
$decode = json_decode($json, true); 
$availability = $json_decode[availability]; 
print_r($json); 
echo $availability; 
?>

这就是你在做的

$decode = json_decode($json, true); 
$availability = $json_decode[availability]; 

您正在使用不同的数组名称$json_decode而不是$decode

所以正确的方法是

$arr = array('name' => 'peter', 'availability' => 'available'); 
$json = json_encode($arr); 
$decode = json_decode($json, true); 
$availability = $decode['availability']; //print_r($json); 
echo $availability;

您在注释中提供了完整的代码:

$decode = json_decode($json, true); 
$availability = $json_decode[availability]; 

$decode$json_decode不是相同的变量名。选择一个并保持一致。

您错过了引号。应该是

$availability = $decode['availability'];

不只是回显一个数组,你可以使用pretty print

$json = '{"name":"peter","availability":"available"}';
$decode = json_decode($json, true);
//$availability = $decode['availability'];
echo "<pre>";
print_r($decode);