【发布时间】:2018-02-26 11:42:25
【问题描述】:
当我收到如下 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);
}
【问题讨论】:
-
这并不奇怪,因为您在将内容作为 JSON 发送之前没有修改
$datas。尝试调试 $datas 中的确切内容,修改其内容,然后将其作为 JSON 发送。 -
嗨@marekful,我可以知道如何修改内容$datas吗?内容 $datas 是 { "Details":{ "Type":"Cash", "Payid":"PAY123456", "Amount":"9000,00", "Status":"Successful", } }
-
有不止一种方法。这主要取决于接收到的数据的可靠性。解码后可以使用
unset($returnData['Details']['Amount']); unset($returnData['Details']['Status']);。 -
假设是stdClass的实例,可以
unset($datas->Details->Amount)等... -
@marekful 在
json_decode中的第二个参数表示数组;)(由于他们使用json_decode,我们可以假设$datas只是一个字符串)
标签: php json laravel-5.3 response