首页 > 解决方案 > 如何解码响应不仅仅是 JSON 字符串的 JSON 响应

问题描述

我正在向返回此响应的 API 发送 cURL 请求:

string(826) "HTTP/1.1 200
Server: openresty/1.13.6.2
Date: Sat, 20 Oct 2018 18:21:54 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 562
Connection: keep-alive
Expires: Sat, 20 Oct 2018 21:20:26 UTC
Cache-Control: max-age=10800
X-Cache-Status: HIT

{
    "SearchResponse": {
        "Matches": {
            "SearchMatch": [
                {
                    "Id": "43000173601",
                    "Lat": 52.4770035488100035,
                    "Lon": -1.71806745583999998,
                    "Name": "Yorkminster Drive",
                    "Modes": {
                        "Mode": "BUS_OR_COACH"
                    },
                    "TopMostParentId": "430G01736"
                },
                {
                    "Id": "43000173602",
                    "Lat": 52.4776389831399968,
                    "Lon": -1.71687080637,
                    "Name": "Yorkminster Drive",
                    "Modes": {
                        "Mode": "BUS_OR_COACH"
                    },
                    "TopMostParentId": "430G01736"
                }
            ]
        },
        "Query": "yorkminster",
        "Total": 2
    }
}

我想要json_decode()JSON 响应,但不知道如何获取 JSON 部分并忽略烦人的顶部部分。我尝试过使用explode(),但它的碎片超出了我的大脑可以处理的范围,任何想法都会有所帮助。

这是我的 cURL 请求:

curl_init('api url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$response = curl_exec($ch);
curl_close($ch);

标签: phpjsonapicurl

解决方案


推荐阅读