首页 > 解决方案 > JSON解码未正确解码php

问题描述

我有一个 PHP 函数,它与另一个 API 对话以获取实时列车信息以从中获取数据。它发出调用并将 XML 数据解析为 JSON,但是当车站中只有一列火车时,它将作为对象而不是数组出现。即使只有一列火车来,我怎样才能让它把所有东西都转换成一个数组。

    public function getStationsByName(Request $request)
    {
        try {
            $stationName = $request->input('id');
            $url = "http://api.irishrail.ie//realtime/realtime.asmx/getStationDataByNameXML?StationDesc=";
            $url .= $stationName;
            $res['status'] = true;
            $res['message'] = 'Success';
            $ir = xmlparser::Parse($url);
            $res ['results'] = json_decode($ir, TRUE);
            $res['num_rows'] = count($res['results']);

            return response($res, 200);
        } catch (\Illuminate\Database\QueryException $ex) {
            $res['status'] = false;
            $res['message'] = $ex->getMessage();
            return response($res, 500);
        }
    }

这是不止一列火车到达车站时的数据 在此处输入图像描述

这是只有一个到达的地方

在此处输入图像描述

标签: phplumen

解决方案


可以自己查,

if(false !== ($result = json_decode($ir, TRUE))){
    if(isset($result["objStationData"]["Servertime"])){
        $objStationDatas = [$result["objStationData"]];
    }else{
        $objStationDatas = $result["objStationData"];
    }
}

推荐阅读