无法获取json_解码PHP中的数据
我有一个脚本,我试图从解码到数组中的json字符串中获取值。。我似乎无法访问数据无法获取json_解码PHP中的数据,php,Php,我有一个脚本,我试图从解码到数组中的json字符串中获取值。。我似乎无法访问数据 $userData = json_decode($_GET['userData']); echo $_GET['userData']; //<--- This line works fine and show the $_GET value $id = $userData['hottsourceID']; //<-- This line errors $coins = $userData['coin
$userData = json_decode($_GET['userData']);
echo $_GET['userData']; //<--- This line works fine and show the $_GET value
$id = $userData['hottsourceID']; //<-- This line errors
$coins = $userData['coins'];
echo $id;
echo $coins;
$userData=json_decode($_GET['userData']);
echo$_GET['userData']// 您应该通过第二个参数将其设置为true
。不带true
参数$userData
为对象。因此,您无法使用$userData['index']
访问它。试一试
$userData = json_decode($_GET['userData'], true);
echo $_GET['userData'];
$id = $userData['hottsourceID'];
$coins = $userData['coins'];
echo $id;
echo $coins;
如果不使用true
作为json_decode()
中的第二个参数,则可以通过$id=$userData->hottsourceID
,$coins=$userData->coins
等方式进行访问。默认情况下json_decode
不会创建关联数组,而是创建对象
$data = json_decode('{"foo":"bar"}');
echo $data->foo;
// "bar"
如果希望json\u decode
使用关联数组,可以将true
作为第二个参数传递
$data = json_decode('{"foo":"bar"}', true);
echo $data["foo"];
// "bar"
现在您知道了这一点,您可以像这样调整自己的解决方案
$userData = json_decode($_GET["userData"]);
$id = $userData->hottsourceID;
$coins = $userData->coins;
echo $id;
echo $coins;
其他提示
由于您正在解析用户输入,如果$\u GET[“userData”]
中的JSON无效,您可能希望抛出一个错误<如果解析失败,code>json_decode
将返回null
function decode($json) {
$data = json_decode($json);
if (is_null($data)) throw new Exception("Invalid JSON");
return $data;
}
try {
$userData = decode($_GET["userData"]);
$id = $userData->hottsourceID;
$coins = $userData->coins;
echo $id;
echo $coins;
}
catch (Exception $e) {
echo $e->getMessage();
}