<?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。
<?php
$jsonData = $_GET['json'];
json_decode($jsonData, TRUE);
echo var_dump($jsonData);
?>
当我进行转储时,结果是C:\ wamp \ www \ Hack \ Post.php:16:字符串'Array'(长度= 5)。 它正在打印“Array”而不是json对象。我该怎么办?
答案 0 :(得分:5)
正如1slock所说,你需要对json进行编码,但也要添加urlencode。
header("Location: Post.php?json=" . urlencode( json_encode($jsonData)) );
答案 1 :(得分:0)
当你执行json_encode时,你必须有一个变量来存储结果:
$jsonData = json_encode($jsonData)
如果没有这个,你的数据仍然只是一个php对象
答案 2 :(得分:0)
在第一个代码示例中,您没有传递json_encoded值,而是传递数组本身。用这个替换你的最后一行,并跳过倒数第二行:
header("Location: Post.php?json=" . json_encode($jsonData));