zu holen Ich benutze Gisclouds REST-API, um einen Json mit einigen Informationen, die ich für meine Web-App brauche, zu greifen. Das Problem ist, dass es unmöglich scheint, dass ich irgendwelche Daten von diesem json mit den entsprechenden PHP-Funktionen abrufen und/oder dekodieren kann. Ich denke, es hat etwas damit zu tun, wie die JSON-Datei strukturiert ist.Unmöglich, Daten aus einer JSON-Datei in PHP-Variable
Dies ist die JSON-Datei (einige Felder bearbeitet):
{
"type": "maps",
"total": 3,
"page": 1,
"data": [
{
"id": "edited",
"name": "Mapa de Mantención en Linea",
"owner": "edited",
"epsg": "900913",
"active": "1",
"copyright": "",
"proj4": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m [email protected] +no_defs",
"units": "meter",
"maxzoom": "0",
"mobileacess": "f",
"bgcolor": "#417893",
"wmsaccess": null,
"modified": 1483563460,
"accessed": 1483563460,
"created": 1483021672,
"description": "",
"maptype": null,
"assets": null,
"rating": "0",
"units_proj4": "meter",
"visited": "31",
"resource_id": "6102219",
"measure_unit": "meter",
"share": "f",
"bounds": " {\"xmin\":-8027875.3326789,\"xmax\":-7742459.4690621,\"ymin\":-4065685.5344885,\"ymax\":-3929474.7500843}"
},
{
"id": "edited",
"name": "Mapa de Operaciones",
"owner": "edited",
"epsg": "900913",
"active": "1",
"copyright": "",
"proj4": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m [email protected] +no_defs",
"units": "meter",
"maxzoom": "0",
"mobileacess": "f",
"bgcolor": "#417893",
"wmsaccess": null,
"modified": 1483563473,
"accessed": 1483563473,
"created": 1483021672,
"description": "",
"maptype": null,
"assets": null,
"rating": "0",
"units_proj4": "meter",
"visited": "45",
"resource_id": "6102603",
"measure_unit": "meter",
"share": "f",
"bounds": "{\"xmin\":-8027263.8364526,\"xmax\":-7741847.9728358,\"ymin\":-4075469.474109,\"ymax\":-3939258.6897048}"
},
{
"id": "edited",
"name": "Mapa M&IC",
"owner": "edited",
"epsg": "900913",
"active": "1",
"copyright": "",
"proj4": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m [email protected] +no_defs",
"units": "meter",
"maxzoom": "0",
"mobileacess": "f",
"bgcolor": "#417893",
"wmsaccess": null,
"modified": 1483563449,
"accessed": 1483563449,
"created": 1483021672,
"description": "",
"maptype": null,
"assets": null,
"rating": "0",
"units_proj4": "meter",
"visited": "35",
"resource_id": "6102604",
"measure_unit": "meter",
"share": "f",
"bounds": "{\"xmin\":-8028181.080792,\"xmax\":-7742765.2171752,\"ymin\":-4074552.2297696,\"ymax\":-3938341.4453654}"
}
]
}
Dies sind die verschiedenen Möglichkeiten, die ich habe versucht, diese json zu entschlüsseln und sie in eine Variable setzen.
Ich habe mehrere andere ähnliche Funktionen wie print_r versucht. Oder ändern Sie einige Werte hier und hier, aber nichts hat funktioniert.
Ich würde sehr viel Hilfe dabei zu schätzen wissen!
einige zusätzliche Informationen:
- Es gibt kein Problem mit Curl. Es wird korrekt ausgeführt.
- Ja, der Server antwortet mit einer JSON-Datei.
UPDATE
- Mit
json_last_error()
(keine Notwendigkeit von Parametern) Ich debbug konnte. Die Funktion gibt ein int zurück, abhängig von der Art des Fehlers. Meine war0
, was bedeutet, dass es keinen Fehler gibt. - Ich denke, dass mir die Ideen dafür ausgegangen sind.
Der JSON-String validiert (mit 'jsonlint.com') – RiggsFolly
Ihr Code gibt 'edited' für mich zurück, was korrekt ist. –
Sie dekodieren zu einer StdClass, aber verwenden das Objekt als assoziatives Array ... json_decode ist standardmäßig auf stdClass: siehe ** [die Dokumentation hier] (http://php.net/manual/en/function.json-decode .php) ** – YvesLeBorg