传递json对象为url参数
<?php
$jsonData = array(
"comments" => "Fresh food",
"container" => false,
"cookedTime" => 2,
"description" => "biryani",
"refridgeration" => true,
"serves" => 2,
"veg" => true
);
json_encode($jsonData);
header("Location:Post.php?json=$jsonData");
?>
这是我的php页面,其中包含json对象。我将这个json对象传递给另一个页面Post.php。传递json对象为url参数
<?php
$jsonData = $_GET['json'];
json_decode($jsonData, TRUE);
echo var_dump($jsonData);
?>
当我做转储结果为C:\瓦帕\ WWW \哈克\ post.php中:16:字符串 '阵列'(长度= 5)。 它正在打印“数组”而不是json对象。我该怎么办?
当你做json_encode你必须有一个变量来存储结果:
$jsonData = json_encode($jsonData)
做不到这一点,你的数据目前还只是一个PHP对象
部分正确。没有'urlencode()'会失败很多事情。 – AbraCadaver
在你的第一个代码示例,你不传递json_encoded值,但数组本身。更换你的这个最后一行,并跳过倒数第二行:
header("Location: Post.php?json=" . json_encode($jsonData));
由于1slock说你脑水肿编码的JSON也可加用urlencode。
header("Location: Post.php?json=" . urlencode(json_encode($jsonData)));
我会做基地64编码,让这个工作到处都是。 –
urlencode应该足够了,应该适用于任何类型的数据。问题在于,如果json太大,因为服务器和浏览器可能会根据其配置裁剪它。 –
URI的长度是有限的。您应该通过POST传递JSON数据 –
从json解码函数中删除True –
@RuslanOsmanov IMO长度限制约为2000个字符 –