Heim >Backend-Entwicklung >PHP-Tutorial >Wie extrahiere ich JSONP Resultset in PHP?
Einführung
Die gegebene Aufgabe umfasst das Abrufen und Parsen von Daten von einer URL, die eine zurückgibt JSONP-Antwort (JSON mit Auffüllung). PHP bietet Funktionen, um solche Antworten effektiv zu verarbeiten.
PHP-Implementierung
Die JSONP-Antwort besteht aus JavaScript-Code, der um eine JSON-Nutzlast gewickelt ist. Um den tatsächlichen JSON-Code zu extrahieren, entfernen Sie den Namen der Rückruffunktion und die Klammern vom Anfang der Antwort. Anschließend kann die PHP-Funktion json_decode() verwendet werden, um den JSON in ein assoziatives Array oder ein Objekt zu analysieren.
Benutzerdefinierte Funktion für die JSONP-Dekodierung
Der Einfachheit halber a Eine benutzerdefinierte Funktion mit dem Namen jsonp_decode() kann definiert werden:
<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>
Verwendung
Mit dieser benutzerdefinierten Funktion können die JSONP-Daten wie folgt extrahiert werden:
<code class="php">$data = jsonp_decode($response);</code>
Beispiel
Betrachten Sie die bereitgestellte JSONP-Beispielantwort:
YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"yahoo","Result":[{"symbol":"YHOO","name": "Yahoo! Inc.","exch": "NMS","type": "S","exchDisp":"NASDAQ","typeDisp":"Equity"}...]}})
Verwendung der Funktion jsonp_decode():
<code class="php">$data = jsonp_decode($response); $query = $data['ResultSet']['Query']; foreach ($data['ResultSet']['Result'] as $result) { echo "Symbol: ".$result['symbol']." - Name: ".$result['name']." - Exchange: ".$result['exch']."\n"; }</code>
Dieser Code extrahiert die Abfragezeichenfolge zusammen mit den Symbolen, Namen und Austauschinformationen aus der JSONP-Antwort.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich JSONP Resultset in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!