json_decode()期望参数1为字符串,给定数组

时间:2011-09-15 20:14:30

标签: php json

导致我的代码出错的原因是什么?

$query = $this->db->query("SELECT * FROM tour_foreign ORDER BY id desc");
        $data = array();
        foreach ($query->result() as $row)
            $data[] = array('guide' => $row->guide);

            echo json_decode($data); //Line 167

错误:

erro: json_decode() expects parameter 1 to be string, array given: Line Number: 167

更新

如果使用json_encode,而不是json_decode我的输出是这样的:

[{"guide":["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":["\u0633\u06c‌​c\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":null}]

他们是波斯语。

7 个答案:

答案 0 :(得分:42)

我认为您需要json_encode,而不是json_decode

答案 1 :(得分:13)

  

将解码设置为 true

您的解码未设置为true。如果您无权将源设置为true。下面的代码将为您解决。

$WorkingArray = json_decode(json_encode($data),true);

答案 2 :(得分:2)

json_decode()用于将json字符串解码为数组/数据对象。 json_encode()从数组或数据创建一个json字符串。您正在使用我的朋友的错误功能,请尝试json_encode();

答案 3 :(得分:2)

您需要设置为true。如果您无权访问源代码,请对其进行解码。

$answer  = json_decode(json_encode( $_GET['json'] ), true );

答案 4 :(得分:1)

这是我从用户个人资料facebook json object

中提取名称时面临的类似问题的解决方案
$uname=json_encode($userprof);
$uname=json_decode($uname);
echo "Welcome " . $uname -> name  ;

答案 5 :(得分:0)

  • 制作对象

    $obj = json_decode(json_encode($need_to_json));

  • 显示此$ obj

    中的数据

    $obj->{'needed'};

Reference

答案 6 :(得分:0)

好,我遇到了同样的问题。我没有注意到的是,我使用的是 json_decode()而不是 json_encode(),所以对于那些会来这里的人,请确保您使用的是正确的函数,它是 json_encode()

注意:取决于您的工作,但请确保使用正确的功能。