Php 如何防止laravel json响应添加反斜杠

Php 如何防止laravel json响应添加反斜杠,php,json,laravel,Php,Json,Laravel,我很难通过javascript解析来自API的json响应,因为laravel返回了反斜杠。我注意到,如果它是一个转换为json的模型,那么laravel将它发送回时不会出现反斜杠。但是,我正在使用guzzle访问API,我必须将该API的响应添加到我自己的自定义响应中,并添加一些其他数据 在通过response()->json()返回之前,我已经记录了我的响应数据,以下是内容: array ( 'data' => array ( 'checkout' => '{&q

我很难通过javascript解析来自API的json响应,因为laravel返回了反斜杠。我注意到,如果它是一个转换为json的模型,那么laravel将它发送回时不会出现反斜杠。但是,我正在使用guzzle访问API,我必须将该API的响应添加到我自己的自定义响应中,并添加一些其他数据

在通过
response()->json()
返回之前,我已经记录了我的响应数据,以下是内容:

array (
  'data' =>
  array (
    'checkout' => '{"timestamp":1600480972698,"status":200,"message":"Request processed successfully","path":"/checkout","data":{"transaction_id":"xxxxx","status_description":"Transaction ready for payment","payment_url":"http://abcdefg.com/abcdefg'
    'transaction' => '{"data":{"transaction":{"billable_id":5,"amount_due":2,"transaction_fee":0.06000000000000005,"amount_paid":0,"reference_id":null,"reference_no":"PTX-0920UI22QJU2","payment_type_id":9,"transaction_status_id":1,"updated_at":"2020-09-19T02:03:09.0000$
  ),
  'status_code' => 200,
)
但是
response()->json($responseData)
实际返回的是:

{
   "data":{
      "checkout":"{\"timestamp\":1600480972698,\"status\":200,\"message\":\"Request processed successfully\",\"path\":\"\/checkout\",\"data\":{\"transaction_id\":\"200919020252BEZ5305\",\"status_description\":\"Transaction ready for payment\",\"payment_url\":\"http:\/\/abcdefg.com\/abcdefg\/1.2.1\/index.html#\/confirm?bizNo=20200919121212800110170567600273184&timestamp=1600480989712&sign=ChbtFZnRH5Mkqlou2BrZZ6TSvhrChmaTUPJnvWok14bVgr1lqMp46mOHoMm%2Fcy%2FhbfUzMoKJ0aG4%2BEjN%2BpFJaW5NchzV6WaZmur1YjFmPzaHVom74kGZcsWeJymgU%2BGmfnyrRaYP971%2BBl4Jqv6NX4gpGsIhzRSsiZIK5cxmk5DHIvn4MTA2834gS3%2FLTfWiQYHmmhhux3FL7eC72IgjW%2BC87pa2GC6XP0BCbgRpyMNUdD%2F5hEoHVKiWdNi8K9WyFZyxOyj%2B73gY%2F4XUJf6wyCLUxg8l6L4xnE0meBOguB8Q2qhS33NUvqXQowsJTn%2BGGEBeu9b4JgKf2cIaPlxE7A%3D%3D&merchantName=APNorderAmount=2.00\",\"status_code\":\"OK.01.00\"}}",
      "transaction":"{\"data\":{\"transaction\":{\"billable_id\":5,\"amount_due\":2,\"transaction_fee\":0.06000000000000005,\"amount_paid\":0,\"reference_id\":null,\"reference_no\":\"PTX-0920UI22QJU2\",\"payment_type_id\":9,\"transaction_status_id\":1,\"updated_at\":\"2020-09-19T02:03:09.000000Z\",\"created_at\":\"2020-09-19T02:03:09.000000Z\",\"id\":77}},\"message\":\"Transaction successfully created.\",\"status_code\":200}"
   },
   "status_code":200
}
注意:上面的json中可能有一些不需要的字符,因为我只能通过elastic beanstalk服务器上的nano/terminal从laravel.log复制这些字符,因为我只能从服务器访问API,因为IP必须被列入白名单

这些方法是否可以在不使用反斜杠的情况下返回第二个代码段中的数据? 我返回它时使用了确切的代码
return-response()->json($response)->setStatusCode($response['status_-code'])

尝试使用

return response()->json($response,$response['status_code'],[],JSON_UNESCAPED_SLASHES);
json()方法(来自接口ResponseFactory)将第四个参数作为json选项


JSON\u UNESCAPED\u斜杠
表示编码op不会跳过斜杠

可以在发送响应之前将
签出
事务
的值转换为数组吗?我想这会解决你的问题。这些实际上是在我的控制器上用json_encode($data,json_UNESCAPED_SLASHES)处理的。我可能很难将它们转换为数组,因为它们来自API,可能会有不同的结果。