2016-05-04 13 views
0

次のJSONP出力は、3番目のAPIから受け取りました。JSONPデータをPHP配列に変換する方法

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

関連する問題