如何在 PHP 中获取特定的节点值 fron json bing 响应



我正在尝试使用必应搜索 API,我得到了 JSON 格式的结果,现在我想从该 JSON 结果中获取特定的节点值,例如(网址、显示网址、片段等(。

这是我得到的 JSON 结果格式

JSON 响应:

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "infokart India Pvt. Ltd."
  },
  "webPages": {
    "webSearchUrl": "https://www.bing.com/search?q=infokart+India+Pvt.+Ltd.",
    "totalEstimatedMatches": 12200000,
    "value": [
      {
        "id": "https://api.cognitive.microsoft.com/api/v7/#WebPages.0",
        "name": "Infokart India Pvt. Ltd.",
        "url": "http://infokartindia.com/",
        "isFamilyFriendly": true,
        "displayUrl": "infokartindia.com",
        "snippet": "Journals Subscription Services,International Subscription Agency,Experiences subscription agency",
        "dateLastCrawled": "2018-07-24T11:49:00.0000000Z",
        "language": "en"
      }
    ]
  },
  "rankingResponse": {
    "mainline": {
      "items": [
        {
          "answerType": "WebPages",
          "resultIndex": 0,
          "value": {
            "id": "https://api.cognitive.microsoft.com/api/v7/#WebPages.0"
          }
        }
      ]
    }
  }
}

请指教!!

<?php 
$json = '{"_type":"SearchResponse","queryContext":{"originalQuery":"infokart India Pvt. Ltd."},"webPages":{"webSearchUrl":"https://www.bing.com/search?q=infokart+India+Pvt.+Ltd.","totalEstimatedMatches":12200000,"value":[{"id":"https://api.cognitive.microsoft.com/api/v7/#WebPages.0","name":"Infokart India Pvt. Ltd.","url":"http://infokartindia.com/","isFamilyFriendly":true,"displayUrl":"infokartindia.com","snippet":"Journals Subscription Services,International Subscription Agency,Experiences subscription agency","dateLastCrawled":"2018-07-24T11:49:00.0000000Z","language":"en"}]},"rankingResponse":{"mainline":{"items":[{"answerType":"WebPages","resultIndex":0,"value":{"id":"https://api.cognitive.microsoft.com/api/v7/#WebPages.0"}}]}}}';
$json_data = json_decode($json,true);
foreach($json_data['webPages']['value'] as $each_data){
    foreach($each_data as $each_key => $each_value){
        if(in_array(strtolower($each_key),['url','displayurl','snippet'])){
            echo $each_key," => ",$each_value,"<br/>";
        }
    }
}

输出

url => http://infokartindia.com/
displayUrl => infokartindia.com
snippet => Journals Subscription Services,International Subscription Agency,Experiences subscription agency

最新更新