Heim > Artikel > Backend-Entwicklung > Wie extrahieren Sie JSON-Daten aus einem JSONP-Callback in PHP?
JSONP-Ergebnismenge in PHP extrahieren
JSONP-Rückrufe sind eine gängige Methode zur Rückgabe von Daten aus einer JavaScript-basierten API. In diesem Fall haben Sie einen solchen Endpunkt, der den folgenden JSONP-Inhalt zurückgibt:
YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"yahoo","Result":[{"symbol":"YHOO","name": "Yahoo! Inc.","exch": "NMS","type": "S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"YAHOY.PK","name": "YAHOO JAPAN CORP","exch": "PNK","type": "S","exchDisp":"Pink Sheets","typeDisp":"Equity"},{"symbol":"ETD","name": "Citigroup Inc. ELKS On Yahoo","exch": "PCX","type": "S","typeDisp":"Equity"},{"symbol":"YOJ.BE","name": "YAHOO JAPAN","exch": "BER","type": "S","exchDisp":"Berlin","typeDisp":"Equity"},{"symbol":"YHO.SG","name": "YAHOO","exch": "STU","type": "S","exchDisp":"Stuttgart","typeDisp":"Equity"},{"symbol":"YAHOF.PK","name": "YAHOO JAPAN CORP","exch": "PNK","type": "S","exchDisp":"Pink Sheets","typeDisp":"Equity"},{"symbol":"YHO.HM","name": "YAHOO","exch": "HAM","type": "S","exchDisp":"Hamburg","typeDisp":"Equity"},{"symbol":"YOJ.DE","name": "YAHOO JAPAN","exch": "GER","type": "S","exchDisp":"XETRA","typeDisp":"Equity"},{"symbol":"YHO.DU","name": "YAHOO","exch": "DUS","type": "S","exchDisp":"Dusseldorf Stock Exchange","typeDisp":"Equity"},{"symbol":"YHOO.BA","name": "YAHOO INC.","exch": "BUE","type": "S","exchDisp":"Buenos Aires","typeDisp":"Equity"}]}})
Um die JSON-Daten aus diesem Inhalt zu extrahieren, können Sie die Funktion jsonp_decode() verwenden:
<code class="php">function jsonp_decode($jsonp, $assoc = false) { // PHP 5.3 adds depth as third parameter to json_decode if($jsonp[0] !== '[' && $jsonp[0] !== '{') { // we have JSONP $jsonp = substr($jsonp, strpos($jsonp, '(')); } return json_decode(trim($jsonp,'();'), $assoc); }</code>
Mit dieser Funktion können Sie wie folgt auf die JSON-Daten zugreifen:
<code class="php">$data = jsonp_decode($response);</code>
Die Variable $data enthält ein Objekt mit Folgendem Struktur:
{ "ResultSet": { "Query": "yahoo", "Result": [ { "symbol": "YHOO", "name": "Yahoo! Inc.", "exch": "NMS", "type": "S", "exchDisp": "NASDAQ", "typeDisp": "Equity" }, // ... ] } }
Sie können dann bei Bedarf auf die einzelnen Datenpunkte zugreifen.
Das obige ist der detaillierte Inhalt vonWie extrahieren Sie JSON-Daten aus einem JSONP-Callback in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!