将json对象作为url参数传递

时间:2016-10-22 13:38:13

标签: php 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。

<?php
$jsonData = $_GET['json'];
json_decode($jsonData, TRUE);
echo var_dump($jsonData);
?>

当我进行转储时,结果是C:\ wamp \ www \ Hack \ Post.php:16:字符串'Array'(长度= 5)。 它正在打印“Array”而不是json对象。我该怎么办?

3 个答案:

答案 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));