Sven Rautenberg: Problem beim verarbeiten eines JSON-Objektes

Beitrag lesen

Moin!

Was ich erhalte, sieht gekürzt so aus:
---schnipp---
renderAdvancedNarrative({"route":{"hasTollRoad":false,"computedWaypoints":[],"fuelUsed":0,"shape":{"maneuverIndexes" ... "info":{"copyright":{"text":"© 2012 MapQuest, Inc.","imageUrl":"http://api.mqcdn.com/res/mqlogo.gif","imageAltText":"© 2012 MapQuest, Inc."},"statuscode":0,"messages":[]}});
---schnipp---

Mache ich danach ein json_decode($response); und lasse mir das mit var_dump(); ausgeben, erhalte ich NULL.

Ich seh meinen Fehler nicht bzw. verstehe ich da vielleicht etwas falsch?
Im Vergleich zu den JSON-Arrays, die ich sonst kenne, kommt mir das "renderAdvancedNarrative(" am Anfang der Rückgabe merkwürdig vor.

Das ist eine waschechte Javascript-Funktion, die deswegen da ist, weil du vermutlich nicht JSON, sondern JSONP abrufst. Gute JSONP-Interfaces erlauben, diese Javascriptfunktion durch den Aufrufer defineren zu lassen. Du solltest nochmal prüfen, in welchen Modus du die API-Ausgabe angefordert hast, bzw. wie du reines JSON erzwingst.

Ein anderer wichtiger Hinweis: json_decode($string); erzeugt dir ein Gemisch von Arrays und stdClass-Objekten. Das ist eventuell nicht so schön, deswegen kennt die Funktion noch einen zweiten Parameter, der dafür sorgt, dass du nur Arrays bekommst: json_decode($string, true);

- Sven Rautenberg