Laravel php 如何以 JSON 格式返回带有某些参数的响应

问题描述 投票:0回答:2

当我收到如下 json 格式的消息时:

{
  "Details":{
      "Type":"Cash",
      "Payid":"PAY123456",
      "Amount":"9000,00",
      "Status":"Successful",
  }
}

我需要返回以下 JSON 格式的响应,仅包含收到的两个参数(类型和 Payid)

{
  "Details": {
    "Type": "Cash",
    "Payid": "PAY123456"
    }
}

目前在我的控制器中它将返回收到的全部详细信息。 但我该如何修改它,以便它只返回某些参数。

public function returnResponse(Request $request)
{
    $datas= $request->getContent();
    $returnData= json_decode($datas, true);
    return response()->json($returnData);
}
php json laravel-5.3 response
2个回答
2
投票

这是一种方法:

public function returnResponse(Request $request){
    $datas = $request->getContent();
    $parsedJson = json_decode($datas, true);
    $returnData = array('Details' => array(
        'Type' => $parsedJson['Details']['Payid'],
        'Payid' => $parsedJson['Details']['Payid'],
        'Confirmation' => 0 // do the same in this line if you want to add more
    ));
    return response()->json($returnData);
}

此代码假设“详细信息”中始终包含“类型”和“Payid”。

结果将是:

Array
(
    [Details] => Array
        (
            [Type] => PAY123456
            [Payid] => PAY123456
            [Confirmation] => 0
        )

)

注意,如果你只想将

Confirmation
添加到原始数组中,可以使用:

$returnData['Details']['Confirmation'] = 0;

0
投票

您还可以隐藏您不希望客户或用户看到的参数,转至模型文件并

protected $hidden=[
// here you will type the property name like
"update_at",
]
© www.soinside.com 2019 - 2024. All rights reserved.