@KoNnY
web-master

Как получить данные json из строки?

Добрый день!

Требуется получить json данные, которые отправляет сервер. Сервер возвращает ответ в виде строчки:
"HTTP 200 OK.... много всякого текста ... [{data1, data2},{data3,data4}]"

Мне из этой строчки нужно вычленить {data1, data2}, {data3, data4} и записать через цикл в массив $result, как:
$result[] = array(
'parametr1' => data1,
'parametr2' => data2,
);
Повторюсь, ответ приходит в виде одной строчки, а не объектом
  • Вопрос задан
  • 598 просмотров
Пригласить эксперта
Ответы на вопрос 2
@frees2
$fff2 ='https://www.googleapis.com/youtube/v3/search'.$region.'&'.$vpoisk.'&key=///////////////'.$rating.'&type=video&'.$time.'&part=snippet&safeSearch=none'. $kolisestvo.'
';

        

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $fff2);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot');
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_exec($ch); 
  $json = curl_exec($ch);
  curl_close($ch);
  if ($json !== false) { 
$json = preg_replace("#(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|([\s\t]//.*)|(^//.*)#", '', $json);
// setlocale(LC_ALL, 'ru_RU.utf8');
 $json = json_decode($json, true) ; 
 // print_r($json);
 

 
 if (isset($json['items']))
 {

 foreach($json['items'] as $items) {
$channelId =$items['snippet']['channelId'];
  
  
$publishedAt =$items['snippet']['publishedAt'];
$title =$items['snippet']['title'];
if (isset($items['snippet']['thumbnails']['default']['url']))
 { $thumbnails =$items['snippet']['thumbnails']['default']['url'];

 if (isset($items['id']['videoId']))  { 


 
 $videoId =$items['id']['videoId'];
Ответ написан
dpigo
@dpigo
Front-end developer
Парсить строку надо. Либо регулярками, либо строковыми методами, в зависимости от структуры строки, а потом нужный участок преобразовывать в JSON или map'ать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы