想要从 Laravel JSON 输出中删除意外的对象,如“标题”、“原始”、“异常”

use*_*513 8 json laravel

我收到这样的 JSON 响应。但我想删除“标题”、“原始”和“例外”。

    {
         "headers": {},
         "original": [        

             {
                 "id": 271,
                 "name": "TestController",
                 "parent_id": null

             }
         ],
         "exception": null
   }
Run Code Online (Sandbox Code Playgroud)

预期输出:

{
    "data": {
      "id": 271,
      "name": "TestController",
      "parent_id": null
    },
    "errors": [],
    "success": true,
    "status_code": 200
}
Run Code Online (Sandbox Code Playgroud)

Jav*_*sta 5

一路上你正在返回一个response()->json()内部另一个东西:response()->json()

response()->json(response()->json($data,200),200)
Run Code Online (Sandbox Code Playgroud)

或者更像:

$data = [
  "id"=> 271,
  "name"=> "TestController",
  "parent_id"=> null
];

$response = response()->json($data,200);

return response()->json($response ,200);
Run Code Online (Sandbox Code Playgroud)

您可能没有注意到它,因为函数将第一个返回response()->json()到第二个


Gur*_*ngh 0

你可以用这个

$json='{
     "headers": {},
     "original": [        

         {
             "id": 271,
             "name": "TestController",
             "parent_id": null

         }
     ],
     "exception": null
}';

$arr=json_decode($json);
$data=$arr->original[0];

$new_json=array();
$new_json['data']=$data;
$new_json['errors']=[];
$new_json['success']=true;
$new_json['status_code']=200;

$new_json=json_encode($new_json);
Run Code Online (Sandbox Code Playgroud)