tags:

views:

40

answers:

2

So I'm sitting here with Google Geocoder, which returns an XML via 'GOOGLE_URL/xml?address=input&sensor=false'. I need to fetch it by using Java and parse it into a JSON object and send it onwards.

How would I go about to do this? (No this is not homework) Note that it should preferably be done within the standard libraries. At the moment I'm trying to work out if it can be done with for example SAX.

A: 

Here is a working example which shows how to connect to a URL, download XML and convert it to JSON format:

  1. Connect to a URL and download the XML as a string:

    String str = "http://maps.google.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true";
    URL url = new URL(str);
    InputStream is = url.openStream();
    int ptr = 0;
    StringBuilder builder = new StringBuilder();
    while ((ptr = is.read()) != -1) {
        builder.append((char) ptr);
    }
    String xml = builder.toString();
    
  2. Download the JSON library from here. (You will have to compile it and ensure that the classes are on your classpath.)

  3. Convert the XML into a JSON Object:

    JSONObject jsonObject = XML.toJSONObject(xml);
    System.out.println(jsonObject);
    
dogbane
That's not very descriptive, now is it? (Edit: Ok now it's a little more descriptive. But I'm still in the dark on the whole parsing part)
Meke
i've added code to illustrate.
dogbane
That made a whole lot more sense ( With your previous information tho) thanks!
Meke
A: 

Why don't you retrieve the Google geocode as JSON in the first place?

The above link is taken directly from:

Blaise Doughan
Because the service is more efficient with XML?
Meke