【问题标题】:JSON response in Laravel 5.5 adds additional fieldsLaravel 5.5 中的 JSON 响应添加了额外的字段
【发布时间】:2018-10-13 16:40:44
【问题描述】:

我正在尝试使用此行在控制器中返回 JSON:

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

$return 包含两个键/值对。

当我尝试在测试中验证响应时,它会失败,因为响应确实包含其他字段:

Unable to find JSON:

[{
    "statusCode": 665,
    "msg": "auth missing"
}]

within response JSON:

[{
    "headers": [],
    "original": {
        "statusCode": "665",
        "msg": "auth missing"
    },
    "exception": null
}].

我不知道其他键是如何到达那里的,以及为什么源数组嵌套在 source 键中。

如何确保只返回我传递给response()->json 的数组?

【问题讨论】:

  • 你能把测试文件贴出来吗,据我所知你应该得到身份验证
  • 简而言之,您正在将一个对象转换为 JSON,而不仅仅是 2 个数据点。你可以通过使用 ->get(); 来解决这个问题;在您的数据库调用上,这将使其返回一个数组,然后将其转换为 JSON 或保持调用相同并将特定数据点分配给您的返回函数,例如return response()->json([$return->statusCode, $return->msg]);
  • 试试return response($return , 200);

标签: php laravel laravel-5.5


【解决方案1】:

在这里回答我自己的问题:

问题是$return 已经是一个 json 编码的对象。所以这个奇怪的格式是json转换成json的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    相关资源
    最近更新 更多