如何使用 PHP/Laravel 返回 Json 数据数组?

Posted

技术标签:

【中文标题】如何使用 PHP/Laravel 返回 Json 数据数组?【英文标题】:How to return Json data array with PHP/Laravel? 【发布时间】:2021-12-02 08:26:31 【问题描述】:

我正在使用 Laravel 开发一个 api,我必须在 url 中获取 json 文件的数据,这是我的代码:

public function index()
    $json_file=file_get_contents("url that I'm using");
    $json_str = json_decode($json_file);
    
    echo $json_str;

JSON 文件:


  "success":true,
  "clients": [
      [
       "name": "Tyler Durden",
       "job": "leader of the ..."
      ],
  ]

但是当我访问调用 index() 的路由时,我得到了这个错误:

Object of class stdClass could not be converted to string

我想获得任何一对客户并保存他们,有人可以帮助我吗?

【问题讨论】:

【参考方案1】:

您不能使用echo 打印对象,要打印您可以使用的对象

print_r($json_str);
var_dump($json_str);

在你的情况下,你只需要一个return 声明

return $json_str;

在 Laravel 中你也可以这样做

return response()->json($json_str);

【讨论】:

“return $json_str”已经生效,但我现在如何打印“clients”值? 您可以通过return $json_str['clients']; 访问它们,如果您的意思是这样的话。 它不起作用,但我使用了return $json_str->clients[0]; 并且为我服务【参考方案2】:

您正在尝试打印 json 而不是字符串。 echo 只会打印一个字符串。

【讨论】:

【参考方案3】:

返回响应($json_str);或返回 response()->json($json_str);带状态码 return response()->json(['data'=>$json_str],200);

【讨论】:

谢谢,伙计。但是现在我正在尝试获取一对“客户”数据的值,有什么提示吗?

以上是关于如何使用 PHP/Laravel 返回 Json 数据数组?的主要内容,如果未能解决你的问题,请参考以下文章

PHP / Laravel - 更新 JSON 对象的值

在 PHP / Laravel 中以抽象的方式包装 JSON 响应

SQL 到 JSON,ORM 用于 PHP 7 和 Laravel

如何在返回所有错误的同时使用 PHP laravel 中的公共类有选择地验证多个字段

如何使用 php/laravel 在现有数组对象中插入键值对?

将对象对象转换为对象数组(PHP,Laravel)