在Laravel中如何将JSON响应数据拆分赋值到不同变量
Laravel JSON响应拆分赋值实现方案
你可以通过JSON解析+变量提取两步完成需求,实现代码如下:
// 1. 先拿到接口返回的原始数组数据,此处假设原始数据存放在$rawResult变量中 // 如果你是在当前控制器生成响应,可直接从你构造的$res中取值,无需额外解析响应 $rawResult = [ "response" => '{"ResCode":"TPB013","ResMsg":"Invalid BAR code, please refresh","ResStatus":1,"sign":"w0EQNoxIOkl0K3IKZYKJEPojBrHerRwdTHS4fhAz3n9CxfIprH0QklzgdNaWWzwmBUq++h2U432d4s5uHmCTjA=="}', "http_code" => 200 ]; // 2. 提取外层变量 $response = $rawResult['response']; // 原始JSON响应字符串 $http_code = $rawResult['http_code']; // HTTP状态码 // 3. 解析JSON字符串为对象,提取内部字段 $parsedData = json_decode($response); $ResCode = $parsedData->ResCode; $ResMsg = $parsedData->ResMsg; $ResStatus = $parsedData->ResStatus; $sign = $parsedData->sign;
如果需要用数组形式操作解析后的内容,只需将json_decode($response)改为json_decode($response, true),后续取值方式改为数组形式即可:
$parsedData = json_decode($response, true); $ResCode = $parsedData['ResCode']; // 其余字段同理按数组键名取值
如果你是通过Laravel自带的Http facade请求第三方接口拿到的响应,可以直接调用内置方法自动解析,无需手动调用json_decode:
$httpResponse = Http::get('目标接口地址'); $http_code = $httpResponse->status(); $parsedData = $httpResponse->json(); // 后续提取字段逻辑同上
内容的提问来源于stack exchange,提问作者Hamza Qureshi
相关产品推荐
相关产品推荐

