2016-05-04 3 views
0

Следующий выход JSONP, который я получаю от API третьей части.Как преобразовать данные JSONP в PHP Array

processResponse({ 
    "website": { 
     "name": "example.it/", 
     "malwareListStatus": "listed", 
     "partialMalwareHosts": [], 
     "uwsListStatus": "unlisted", 
     "partialUwsHosts": [], 
     "socialListStatus": "unlisted", 
     "partialSocialEngHosts": [], 
     "malwareDownloadListStatus": "unlisted", 
     "partialMalwareDowHosts": [], 
     "uwsDownloadListStatus": "unlisted", 
     "partialUwsDowHosts": [], 
     "unknownDownloadListStatus": "unlisted", 
     "partialUnknownDowHosts": [], 
     "numAses": 1, 
     "numListedTimes": 1, 
     "asList": ["AS28716 (RETELIT-AS)"], 
     "malwareSite": { 
      "type": 6, 
      "sendsToAttackSites": [], 
      "sendsToIntermediarySites": [], 
      "receivesTrafficFrom": ["tes.com/", "test.com/", "test.fr/"] 
     } 
    }, 
    "as": {}, 
    "dataUpdatedDate": 1462333750, 
    "lastVisitDate": 1462321226, 
    "lastMaliciousDate": 1462321226, 
    "numTested": 14484 
}); 

Я пытаюсь использовать json_decode($ApiOutput); преобразовать в массив PHP. Однако он не работает. У вас есть какие-то указатели?

+2

Возможный дубликат [Как преобразовать строку JSON в массив] (http://stackoverflow.com/questions/7511821/how-to-convert-json-string-to-array) – rll

ответ

1

Самый быстрый способ будет сделать только простой str_replace(), чтобы избавиться от имени функции и последней фигурной скобкой в ответе. В противном случае вы не получите действительный JSON, и поэтому ваш json_decode() терпит неудачу.

+0

Позвольте мне еще раз проверить. – user6289857

+0

Спасибо, человек! Я полностью понял. – user6289857

0

json_decode() - правильный метод.

Его работает для меня:

$json = '{ 
    "website": { 
     "name": "example.it/", 
     "malwareListStatus": "listed", 
     "partialMalwareHosts": [], 
     "uwsListStatus": "unlisted", 
     "partialUwsHosts": [], 
     "socialListStatus": "unlisted", 
     "partialSocialEngHosts": [], 
     "malwareDownloadListStatus": "unlisted", 
     "partialMalwareDowHosts": [], 
     "uwsDownloadListStatus": "unlisted", 
     "partialUwsDowHosts": [], 
     "unknownDownloadListStatus": "unlisted", 
     "partialUnknownDowHosts": [], 
     "numAses": 1, 
     "numListedTimes": 1, 
     "asList": ["AS28716 (RETELIT-AS)"], 
     "malwareSite": { 
      "type": 6, 
      "sendsToAttackSites": [], 
      "sendsToIntermediarySites": [], 
      "receivesTrafficFrom": ["tes.com/", "test.com/", "test.fr/"] 
     } 
    }, 
    "as": {}, 
    "dataUpdatedDate": 1462333750, 
    "lastVisitDate": 1462321226, 
    "lastMaliciousDate": 1462321226, 
    "numTested": 14484 
}'; 
$arr = json_decode($json); 
echo '<pre>';print_r($arr);echo '</pre>'; 

Выход:

stdClass Object 
(
    [website] => stdClass Object 
     (
      [name] => example.it/ 
      [malwareListStatus] => listed 
      [partialMalwareHosts] => Array 
       (
       ) 

      [uwsListStatus] => unlisted 
      [partialUwsHosts] => Array 
       (
       ) 

      [socialListStatus] => unlisted 
      [partialSocialEngHosts] => Array 
       (
       ) 

      [malwareDownloadListStatus] => unlisted 
      [partialMalwareDowHosts] => Array 
       (
       ) 

      [uwsDownloadListStatus] => unlisted 
      [partialUwsDowHosts] => Array 
       (
       ) 

      [unknownDownloadListStatus] => unlisted 
      [partialUnknownDowHosts] => Array 
       (
       ) 

      [numAses] => 1 
      [numListedTimes] => 1 
      [asList] => Array 
       (
        [0] => AS28716 (RETELIT-AS) 
       ) 

      [malwareSite] => stdClass Object 
       (
        [type] => 6 
        [sendsToAttackSites] => Array 
         (
         ) 

        [sendsToIntermediarySites] => Array 
         (
         ) 

        [receivesTrafficFrom] => Array 
         (
          [0] => tes.com/ 
          [1] => test.com/ 
          [2] => test.fr/ 
         ) 

       ) 

     ) 

    [as] => stdClass Object 
     (
     ) 

    [dataUpdatedDate] => 1462333750 
    [lastVisitDate] => 1462321226 
    [lastMaliciousDate] => 1462321226 
    [numTested] => 14484 
) 
+0

Позвольте мне попробовать еще раз. – user6289857

+0

Значения, поступающие из базы данных по мере необходимости, однако они все еще не работают. – user6289857

+0

Спасибо, человек! Теперь я понял. – user6289857

Смежные вопросы