Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    1

    PHP e JSON, ho un problema a leggere dati restituiti dal servizio di MapIT.openopolis

    Salve ho la necessit� di recuperare da un servizio fornito da MapIT i dati relativi alla nazione, regione e provincia relativi ad una serie di coordinate.
    Nella porzione di codice in basso invio le coordinate di un punto neel formato long,lat e ricevo un oggetto JSON che in qualche modo viene letto e decodificato con le opportune funzioni messe a disposizione dalla libreria json.php.
    Il mio problema � che non riesco a recuperare i dati di alcuni "nodi"
    In pratica dovrei recuperare solo i dati che corrispondo alla Nazione, Regione, Provincia di quel preciso punto sulla mappa.

    Ecco il codice che mi sta facendo dannare:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Problema con JSON-PHP DECODIFICATO JSON come accedo ai nodi/propriet�/attributi</title>
    </head>
    <body>
    <?php


    require_once("JSON.php");
    $json = new Services_JSON();

    $url="http://mapit.openpolis.it/point/4326/12.5042,41.8981";
    $sPagina = file_get_contents($url);
    $oNodi = $json->decode($sPagina,true);


    echo "<br /><br />OGGETTO oNODI <br />";
    print_r($oNodi);

    echo "<br /><hr />";
    echo $sPagina;


    echo "<hr />";
    print("<p>Name: ".$oNodi[2]->country_name."<br />");

    var_dump($oNodi);

    echo "<hr />";
    print("<p>Name: ".$oNodi[2]->country_name."<br />");

    echo "<hr />";

    ?>
    </body>
    </html>




    LA variabile JSON � cos� codificata una volta lanciato lo script sopra riportato:

    {"8253": {"parent_area": null, "generation_high": 2, "all_names": {}, "id": 8253, "codes": {}, "name": "Centrale", "country": "I", "type_name": "Codice Circoscrizioni Elettorali del Parlamento Europeo", "generation_low": 2, "country_name": "Italia", "type": "CIRCEU"}, "12": {"parent_area": null, "generation_high": 2, "all_names": {}, "id": 12, "codes": {"ISTAT_REG": "12"}, "name": "Lazio", "country": "I", "type_name": "Regione", "generation_low": 1, "country_name": "Italia", "type": "REG"}, "8231": {"parent_area": null, "generation_high": 2, "all_names": {}, "id": 8231, "codes": {}, "name": "Lazio 1", "country": "I", "type_name": "Circoscrizione elettorale Camera", "generation_low": 2, "country_name": "Italia", "type": "CIRCCAM"}, "78": {"parent_area": 12, "generation_high": 2, "all_names": {}, "id": 78, "codes": {"ISTAT_PRO": "58"}, "name": "Roma", "country": "I", "type_name": "Provincia", "generation_low": 1, "country_name": "Italia", "type": "PRO"}, "5734": {"parent_area": 78, "generation_high": 2, "all_names": {}, "id": 5734, "codes": {"ISTAT_COM": "12058091"}, "name": "Roma", "country": "I", "type_name": "Comune", "generation_low": 1, "country_name": "Italia", "type": "COM"}}

    Qualcuno pu� darmi una mano, ho migliaia di dati puntiformi ma mi mancano i dettagli della localit�, senza una procedura automatizzata non riesco a completare il lavoro in breve tempo.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, a vedere il json le chiavi non sono mai uguali, variano e sono corrispondenti agli ID presenti in ogni elemento.
    Quindi presumo che un $oNodi[2] ad esempio, per andare a prendere il secondo elemento della lista(presumo sia una prova) non puù funzionare. Se lo scopo è raccogliere alcuni dati di ogno oggetto ti coviene ciclare l'intera lista ed esportare (magari in altro array multidimensionale) quello che ti serve.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    1

    Il problema � che non riesco a ciclare all'interno di ciascun nodo con

    Il JSON che ti ho postato � corretto infatti se copio la json string


    {"8253": {"parent_area": null, "generation_high": 2, "all_names": {}, "id": 8253, "codes": {}, "name": "Centrale", "country": "I", "type_name": "Codice Circoscrizioni Elettorali del Parlamento Europeo", "generation_low": 2, "country_name": "Italia", "type": "CIRCEU"}, "12": {"parent_area": null, "generation_high": 2, "all_names": {}, "id": 12, "codes": {"ISTAT_REG": "12"}, "name": "Lazio", "country": "I", "type_name": "Regione", "generation_low": 1, "country_name": "Italia", "type": "REG"}, "8231": {"parent_area": null, "generation_high": 2, "all_names": {}, "id": 8231, "codes": {}, "name": "Lazio 1", "country": "I", "type_name": "Circoscrizione elettorale Camera", "generation_low": 2, "country_name": "Italia", "type": "CIRCCAM"}, "78": {"parent_area": 12, "generation_high": 2, "all_names": {}, "id": 78, "codes": {"ISTAT_PRO": "58"}, "name": "Roma", "country": "I", "type_name": "Provincia", "generation_low": 1, "country_name": "Italia", "type": "PRO"}, "5734": {"parent_area": 78, "generation_high": 2, "all_names": {}, "id": 5734, "codes": {"ISTAT_COM": "12058091"}, "name": "Roma", "country": "I", "type_name": "Comune", "generation_low": 1, "country_name": "Italia", "type": "COM"}}


    e la inserisco all'interno della textarea del tool online https://konklone.io/json/ la conversione mi restituisce una tabella correttamente rappresentata e alla quinta, nona e quindicesima cella ci sarebbero i dati che mi piacerebbe prelevare per popolare in automatico la mia lista di dati con le sole coordinate.

    Spero di essere stato chiaro.

    Ti ringrazio per provare ad aiutarmi.

    Ciao

    Max

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.