Keresés

Hirdetés

Új hozzászólás Aktív témák

  • fordfairlane

    veterán

    válasz Teasüti #3656 üzenetére

    Ha megvan az eredmény JSON formátumban, egyszerűen belerakod egy változóba, majd a megfelelő propertyket lekérdezed.

    var v = http.responseText;

    for(i = 0; i < v.results.length;i ++) {
    alert(v.results[i].formatted_address);
    }

    alert helyett persze használj valami más debug kiíratást.

    [ Szerkesztve ]

    x gon' give it to ya

  • Sk8erPeter

    nagyúr

    válasz Teasüti #3656 üzenetére

    "És JSON formátumot is fel tudok dolgozni XML objektumként?"
    Nem jó a kérdés, JSON-formátumot annak megfelelő formában is kell feldolgozni. :) Kell hozzá általában egy JSON.parse() (+[link]), lásd alább.
    Nagy előnye, hogy nagyon kényelmes is feldolgozni (ha a natív JSON-támogatás adott (ha nem, akkor külső könyvtár vagy más megoldás kell)).

    "megzavart, hogy én itt XMLHttp-vel dolgozom"
    Nem csodálom, de ne zavarjon meg.

    Az előzőek alapján írtam neked egy nagyon egyszerű példakódot, nyisd meg a böngésződ fejlesztőpanelét (F12-vel), kattints a Console fülre, majd egyszerűen másold be ezt a kódot, és nyomj egy Entert, hogy lásd, mit csinál:

    // https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

    var loc = "40.714224,-73.961452"; // csak példa
    var httpRequest = new XMLHttpRequest();

    httpRequest.onreadystatechange = function() {

    if (httpRequest.readyState === 4) {
    if (httpRequest.status === 200) {
    var responseText = httpRequest.responseText;
    var responseTextInJSON = window.JSON.parse(httpRequest.responseText);

    if(responseTextInJSON.status === "OK"){
    var results = responseTextInJSON.results;
    for(var i = 0; i<results.length; i++) {
    var addr = results[i].formatted_address;
    console.log("formatted address: ", addr);
    // további eredmények...
    }
    }
    else {
    // valami gáz van, kezeld le a hibát
    }
    } else {
    // para van
    alert('There was a problem with the request.');
    }
    }
    };

    var url = "https://maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true";
    // inkább JSON-formátum
    url = "https://maps.googleapis.com/maps/api/geocode/json?latlng="+loc+"&sensor=true";
    var isAsynchronous = true; // változtasd meg, attól függően, hogy aszinkron kérést szeretnél, vagy sem
    httpRequest.open("GET", url, isAsynchronous);
    httpRequest.send();

    Így elég egyszerűen fel lehetett dolgozni az eredményeket, amiket JSON-formátumban kaptál.

    [ Szerkesztve ]

    Sk8erPeter

Új hozzászólás Aktív témák