, I went through HELL and HIGH WATER.. writing this (and I swear CN1 has
parsing, unless ive done something drastically wrong - hopefully our new google lib will help lol???)..
This took 9 hours of PAIN.. I post this hear because this sort of example code is SERIOUSLY LACKING, not only in CN1 but even J2SE.. Enjoy.
 private void GETCOORDS(){//final Dialog progress) {
    _("GETCOORDS");
    try {
      Â
      ConnectionRequest req = new ConnectionRequest()Â
      {
        protected void readResponse(InputStream input) throws IOExceptionÂ
        {
          JSONParser p = new JSONParser();
          Hashtable h = p.parse(new InputStreamReader(input));
          // "status" : "REQUEST_DENIED"
          String response = (String)h.get("status");
          _("//////////////STATUS FROM API: "+response);
          if(response.equals("REQUEST_DENIED"))
          {
            _("Request Denied "+(String)h.get("error_message"));//obtain a key!
            return;
          }
                      Â
          //PARSE the json of directions data from google, warning this is hideous CN1 has very bad parsing
          //
          RouteHolder routeHolder = new RouteHolder();
          //routeholder
          //  + LEGS
          //   + STEPS
                    Â
          final Vector vec = (Vector) h.get("routes");
          _("///////////////////////vec size:"+vec.size());
          Â
          Leg mylegs[] ;//= new Leg[vec.size()];
          Â
          for (int i = 0; i < vec.size(); i++) {
            Â
            Hashtable entry = (Hashtable)vec.elementAt(i);
            Â
            String copyrights = (String) entry.get("copyrights");
            _("copyrights:"+copyrights);
            routeHolder.copyrights=copyrights;
            Â
            Â
             String summary = (String) entry.get("summary");
            _("summary:"+summary);
            routeHolder.summary=summary;
            Â
            //////////////////////////////////////////////////////////
            //GET THE LEGS OF THE JOURNEY/////////////////////////////
            /////////////////////////////////////////////////////////
            Â
            Â
            Vector legs = (Vector) entry.get("legs");
            Â
            mylegs = new Leg[ legs.size() ];
            Â
            //_("legs:"+legs);
            for (int j=0; j<legs.size(); j++)
            {
              Hashtable distance = (Hashtable) legs.get(j);
             Â
               mylegs[j]=new Leg();
              Â
              //each step has a number of things it can hold..
             Â
              _("________________________________________________________");
              //DISTANCE////////////////
              _("DISTANCE:");
              Hashtable distanceHT = (Hashtable) distance.get("distance");
              Â
              String textDistance= (String)distanceHT.get("text");
              _("text:"+textDistance);
              Double valueDistance= (Double)distanceHT.get("value");
              _("value:"+valueDistance);
                        Â
              Distance dist = new Distance(textDistance,valueDistance);
              mylegs[j].distance = dist;
              //////////////////////////
              Â
              //DURATION////////////////
              _("DURATION");
              Hashtable durationHT = (Hashtable) distance.get("duration");
              Â
              String textDuration= (String)durationHT.get("text");
              _("text:"+textDuration);
              Double valueDuration= (Double)durationHT.get("value");
              _("value:"+valueDuration);
                            Â
              Duration dura = new Duration(textDuration,valueDuration);
              mylegs[j].duration = dura;
              ///////////////////////////
              Â
              //END LOCATION/////////////
              _("#### end_location:");
              Hashtable end_location = (Hashtable) distance.get("end_location");
              Double lat = (Double) end_location.get("lat");
              _("########lat :"+lat);
              Double lng = (Double) end_location.get("lng");
              _("########lng:"+lng);
              Â
              Coord endLocationCoord = new Coord(lng,lat);
              mylegs[j].endLocationCoord=endLocationCoord;
              ///////////////////////////
              Â
                           Â
              ///START LOCATION////////////////////
              _("#### start_location:");
              Hashtable start_location = (Hashtable) distance.get("start_location");
              lat = (Double) start_location.get("lat");
              _("########lat :"+lat);
              lng = (Double) start_location.get("lng");
              _("########lng:"+lng);
              Â
              Coord startLocationCoord = new Coord(lng,lat);
              mylegs[j].startLocationCoord=startLocationCoord;
              /////////////////////////////////////
              Â
              ///END ADDRESS////////////////////////////
              String end_address = (String) distance.get("end_address");
              _("END ADDRESS:"+end_address);
              Â
              mylegs[j].end_address= end_address;
              //////////////////////////////////////////
              Â
              Â
              ///START ADDRESS///////////////////////////
              String start_address = (String) distance.get("start_address");
              _("START ADDRESS:"+start_address);
              Â
              mylegs[j].start_address= start_address;
              //////////////////////////////////////////
              Â
              Â
              Â
              //VIA WAYPOINTS////////////////////////////
              _("#### via_waypoint:");
              Vector via_waypoint = (Vector) distance.get("via_waypoint");
              /// implement this when needed!
              /////////////////////////////////////
              Â
              Â
              Vector steps = (Vector) distance.get("steps");
              _("STEPS:"+steps.size());
              Â
              Step mysteps[] = new Step[steps.size()];
              Â
              Â
              ///////////////////////////////////////////////////////////////
              ////////////////////GET EACH STEP SEPERATELY///////////////////
              ///////////////////////////////////////////////////////////////
              for (int m=0; m<steps.size(); m++)
              {
                Â
                Â
                 mysteps[m]=new Step();
                Â
                Hashtable stepsHT = (Hashtable) steps.get(m);
                // _("steps:"+stepsHT.size());
                Â
                //_("_________________________________________________________");
                //_("#### Distance:");
                Hashtable distanceHT2 = (Hashtable) stepsHT.get("distance");
                String text = (String) distanceHT2.get("text");
                //_("########text :"+text);
                Double value = (Double) distanceHT2.get("value");
                //_("########value:"+value);
                Â
                Â
                dist = new Distance(text,value);
                mysteps[m].distance = dist;
                Â
                Â
                //_("#### Duration:");
                Hashtable durationHT2 = (Hashtable) stepsHT.get("duration");
                text = (String) durationHT2.get("text");
                //_("########text :"+text);
                Double valueDbl = (Double) durationHT2.get("value");
                //_("########value:"+valueDbl);
                Â
                dura = new Duration(text,valueDbl);
                mysteps[m].duration = dura;
                Â
                Â
                //_("#### end_location:");
                end_location = (Hashtable) stepsHT.get("end_location");
                lat = (Double) end_location.get("lat");
                //_("########lat :"+lat);
                lng = (Double) end_location.get("lng");
                //_("########lng:"+lng);
                Â
                endLocationCoord = new Coord(lng,lat);
                mysteps[m].endLocationCoord=endLocationCoord;
                Â
                String html_instructions = (String) stepsHT.get("html_instructions");
                //_("####html_instructions:"+html_instructions);
                Â
                //_("####start_location:");
                start_location = (Hashtable) stepsHT.get("start_location");
                lat = (Double) start_location.get("lat");
                //_("########lat :"+text);
                lng = (Double) start_location.get("lng");
                //_("########lng:"+value);
                Â
                startLocationCoord = new Coord(lng,lat);Â
                mysteps[m].startLocationCoord=endLocationCoord;
                Â
                String travel_mode = (String) stepsHT.get("travel_mode");
                //_("####travel_mode:"+travel_mode);
                Â
                mysteps[m].travel_mode=travel_mode;
                Â
                html_instructions = (String) stepsHT.get("html_instructions");
                //_("####html_instructions:"+html_instructions);
                mysteps[m].html_instructions=html_instructions;
                Â
                Â
                //_("####Polyline:");
                Hashtable polyline = (Hashtable) stepsHT.get("polyline");
                text = (String) polyline.get("points");
                //_("########points :"+text);
                Â
                 mysteps[m].points=text;
                Â
                 String maneuver = (String) stepsHT.get("maneuver");
                //_("####maneuver:"+maneuver);
                Â
                 mysteps[m].maneuver=maneuver;
                Â
                Â
                Â
                Â
                Â
              }
              Â
               mylegs[j].steps= mysteps;
              ///////////////////////////////////////////////////////////////////
             Â
              Â
              Â
              Â
              Â
            }
            routeHolder.mylegs=mylegs;
            Â
            Â
            Â
            Â
            _("____________________________");
            _("##### PARSING COMPLETE #####");
            _("____________________________");
            _("testing data");
            _("routeHolder copyright:"+routeHolder.copyrights);
            _("routeHolder #legs:"+routeHolder.mylegs.length);
            for (int x=0; x<routeHolder.mylegs.length; x++)
            {
              Leg leg = routeHolder.mylegs[x];
              _("  "+x+"// Leg contains "+leg.steps.length+" steps");// ---> start_address:"+leg.start_address);
              _("  Leg is "+leg.distance.text+" which will take "+leg.duration.text);
              _("  Start @ "+leg.start_address);
              _("  End  @ "+leg.end_address);
              Â
              if(segmentsToPlotSTART==null)
              {
                segmentsToPlotSTART= new Coord[leg.steps.length];
              }
              Â
              for (int y=0; y<leg.steps.length; y++)
              {
                Step step = leg.steps[y];
                _("   "+y+"// START Step distance is "+step.distance.text+" "+step.html_instructions);
                Â
                segmentsToPlotSTART[y] = step.startLocationCoord;
              }
              Â
              if(segmentsToPlotEND==null)
              {
                segmentsToPlotEND= new Coord[leg.steps.length];
              }
              Â
              for (int y=0; y<leg.steps.length; y++)
              {
                Step step = leg.steps[y];
                _("   "+y+"// END Step distance is "+step.distance.text+" "+step.html_instructions);
                Â
                segmentsToPlotEND[y] = step.endLocationCoord;
              }
            }
         Â
          }
        }
      };
      Â
        String origin = ""+lastLocation.getLatitude()+","+lastLocation.getLongitude();
     String dest  = closestStation.latitude+","+closestStation.longitude;
    Â
      Â
      req.setPost(false);
      //req.addArgument("location", "" + loc.getLatitude() + "," + loc.getLongtitude());
      req.addArgument("origin", origin);
      req.addArgument("destination", dest);
      req.addArgument("sensor", "false");
      // req.addArgument("client", "radiantsilverlabs");
      Â
      _("origin:"+origin);
      _("destination:"+dest);
      Â
      //and replace it here.
      String key = Prefs.GOOGLE_MAPS_KEY;//AddYourOwnKeyHere";
      Â
     //  req.addArgument("key", key);
      NetworkManager.getInstance().addToQueueAndWait(req);
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }