【问题标题】:Why doesn't json_decode work with this particular json object?为什么 json_decode 不适用于这个特定的 json 对象?
【发布时间】:2016-01-16 23:54:18
【问题描述】:

所以我有我的 php 脚本通过 http GET 请求从http://www.reddit.com/search.json 接收一个 json 对象,并且通过之前的测试,确实成功地获得了一个 json 对象。但是,当我在这个对象上使用 json_decode 时,我得到一个错误:

可捕获的致命错误:第 5 行 /home/hudson/ug/xbvg52/public_html/stupid.php 中的 stdClass 类的对象无法转换为字符串

这是我的(非常简单的)代码:

$query = $_GET["radio"];
$url = "https://www.reddit.com/search.json?q=".$query;
$response = file_get_contents($url);
echo json_decode($response);

如何将此 JSON 对象转换为字符串?

【问题讨论】:

  • $query 有什么价值?
  • 你得到的响应一个字符串,json_decode将它转换成一个对象(数组)
  • @Quentin $query 在上一页的 html 表单中输入了任何内容
  • @HJGBAUM — 显然,但除非你给我们举个例子,否则很难重现这个问题。
  • print_r (json_decode($response)); json_decode 的结果是一个对象,所以 echo 不会工作

标签: php json


【解决方案1】:

您无法回显json_decode,因为此函数创建了一个对象数组或一个简单对象。尝试运行 var_dump(json_decode($response)); 并亲自查看。

您收到此错误是因为 echo 需要一个字符串并且您正在发送一个对象。

您可以将此数组转换为字符串以回显它。

【讨论】:

  • 不需要转换数组,他只需要首先不将json字符串(他想要的)转换为数组/对象
  • 嗯,这是一个解决方案。但是如果他想要特定的值,那么他需要在 echo 中指定它。
【解决方案2】:

我相信您看到的错误是因为您正在回显一个对象。 Echo 仅用于字符串。请改用 print_r 或 var_dump。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-29
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2023-03-06
    • 2016-07-07
    • 1970-01-01
    相关资源
    最近更新 更多