Как анализировать ответ поиска Azure в PHP?

В настоящее время я пробую поиск в Azure.

Мне удалось вставить документы в индекс, и теперь я хочу проанализировать свой результат.

Мой код выглядит так:

<?php
$url ="";
   $url .="https://mywebsite.search.windows.net/indexes/test/docs";
   $url .= "?search=";
   $url .= $keyword;
   $url .= "&api-version=2014-07-31-Preview";
   print $url;


   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL,$url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_TIMEOUT, 60);
   curl_setopt($ch, CURLOPT_HTTPHEADER, array(
           'api-key: mytoken',
           'Accept: application/json',
     ));

   $data = curl_exec($ch);

   if (curl_errno($ch)) {
   print "Error: " . curl_error($ch);
   } else 
   {
   // Show me the result
   print var_dump($data);
   curl_close($ch);
   }
?>

Моя программа работает нормально, но я не могу разобрать свой результат, который выглядит так:

строка (633) "{" @ odata.context ":" https://mywebsite.search.windows.net/indexes ('adventurehotel') / $ metadata # docs (hotelId, baseRate, description, hotelName, category, теги, ParkingIncluded, SmokingAllowed, lastRenovationDate, rating, location) "," value ": [{" @ search .score ": 0.16137227," hotelId ":" 1 "," baseRate ": 199.0," description ":" Лучший отель в городе "," hotelName ":" Необычный отдых "," category ":" Люкс "," теги ": [" бассейн "," вид "," Wi-Fi "," консьерж "]," ParkingIncluded ": false," SmokingAllowed ": false," lastRenovationDate ":" 2010-06-27T00: 00: 00Z "," рейтинг ": 5," местоположение ": {" тип ":" Точка "," координаты ": [- 122.131577,47.678581]," crs ": {" тип ":" имя "," свойства ": {" имя ": "EPSG: 4326"}}}}]} "

Заранее спасибо.


person pi-2r    schedule 17.11.2014    source источник
comment
Как вы вообще кодировали данные? Похож на строку JSON   -  person GordonM    schedule 17.11.2014
comment
Просто json_decode это.   -  person baldrs    schedule 17.11.2014


Ответы (1)


Просто json_decode это просто Строка json.

json_decode, если он вызывается со вторым параметром true, даст вам ассоциативный массив представление строки, которую вы хотите проанализировать. Сама строка должна быть допустимой json строкой, иначе вы получите null в качестве результата функции.

Обратите внимание, что начиная с php 5.5 и выше, расширение json должно устанавливаться отдельно от основной установки php из-за его лицензии.

person baldrs    schedule 17.11.2014
comment
спасибо за ваш ответ. если кто-то хочет его декодировать, следуйте этому примеру: $ json_decoded = json_decode ($ data, true); печать $ json_decoded ['значение'] ['0'] ['категория']; - person pi-2r; 17.11.2014