Laravel php如何以JSON格式返回带有特定参数的响应
当我收到json格式的消息时,如下所示:Laravel php如何以JSON格式返回带有特定参数的响应,php,json,laravel-5.3,response,Php,Json,Laravel 5.3,Response,当我收到json格式的消息时,如下所示: { "Details":{ "Type":"Cash", "Payid":"PAY123456", "Amount":"9000,00", "Status":"Successful", } } 我需要返回以下JSON格式的响应,其中只包含接收到的两个参数(Type&Payid) { "Details": { "Type": "Cash", "Payid": "PAY123456
{
"Details":{
"Type":"Cash",
"Payid":"PAY123456",
"Amount":"9000,00",
"Status":"Successful",
}
}
我需要返回以下JSON格式的响应,其中只包含接收到的两个参数(Type&Payid)
{
"Details": {
"Type": "Cash",
"Payid": "PAY123456"
}
}
目前在我的控制器中,它将返回收到的全部详细信息。
但是我如何修改它,使它只返回特定的参数呢
public function returnResponse(Request $request)
{
$datas= $request->getContent();
$returnData= json_decode($datas, true);
return response()->json($returnData);
}
这是一种方法:
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);
}
此代码假定“详细信息”中始终包含“Type”和“Payid”
结果将是:
Array
(
[Details] => Array
(
[Type] => PAY123456
[Payid] => PAY123456
[Confirmation] => 0
)
)
注意,如果您只想将
确认
添加到原始数组,可以使用:
$returnData['Details']['Confirmation'] = 0;
这并不奇怪,因为在将其作为JSON发送之前,您不会修改内容
$datas
。尝试调试$datas中的内容,修改其内容,然后将其作为JSON发送。hi@marekful,我可以知道如何修改$datas的内容吗?$datas的内容是{“详细信息”:{“类型”:“现金”、“Payid”:“PAY123456”、“金额”:“9000,00”、“状态”:“成功”}有多种方法。这主要取决于接收数据的可靠性。您可以使用unset($returnData['Details']['Amount']);未设置($returnData['Details']['Status'])解码后的code>。假设它是stdClass的实例,您可以取消设置($datas->Details->Amount)
,等等。json_decode
中的@marekful第二个参数表示数组;)(由于他们使用的是json\u decode
,我们可以假设$datas
只是一个字符串)