Parse JSON in Java
public class JsonTest {
public static void main(String args[]){
String str = "{ \"name\": \"Alice\", \"age\": 20 }";
JSONObject obj = new JSONObject(str);
String name= obj.getString("name");
int age = obj.getInt("age");
System.out.println("name: "+name);
System.out.println("age: "+age);
}
}
--------------------------------------------------------------------------------------------------------------
JSON Array
import org.json.*;
public class JSONArrayTest {
public static void main(String args[]){
String str = "{ \"number\": [3, 4, 5, 6] }";
JSONObject obj = new JSONObject(str);
JSONArray arr=obj.getJSONArray("number");
for(int i=0;i<arr.length();i++){
System.out.print(arr.getInt(i));
}
}
}
--------------------------------------------------------------------------------------------------------------
Google Maps API provides geocoding services to find the latitude/longitude of an address. The service returns results in JSON. The following method
geocoding()
does the following:- Build a URL to access the geocoding service.
- Read from the URL.
- Build a JSON object for the content.
- Retrieve the first result from an array of results.
- Print out the information.
Geo Coding
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;
import org.json.JSONObject;
public class GeoCoding {
public static void main(String args[]) throws IOException{
String addr ="1600+Amphitheatre+Parkway,+Mountain+View,+CA";
String s= "http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false";
s+=URLEncoder.encode(addr,"UTF-8");
URL url=new URL(s);
// read from the URL
Scanner scan = new Scanner(url.openStream());
String str = new String();
while (scan.hasNext())
str += scan.nextLine();
scan.close();
// build a JSON object
JSONObject obj = new JSONObject(str);
if (! obj.getString("status").equals("OK"))
return;
// get the first result
JSONObject res = obj.getJSONArray("results").getJSONObject(0);
System.out.println(res.getString("formatted_address"));
JSONObject loc =
res.getJSONObject("geometry").getJSONObject("location");
System.out.println("lat: " + loc.getDouble("lat") +
", lng: " + loc.getDouble("lng"));
}
}
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
http://mvnrepository.com/artifact/org.json/json/20160810
----------------------------------------------------------------------------------------
https://stackoverflow.com/questions/2591098/how-to-parse-json
http://theoryapp.com/parse-json-in-java/
Geocoding
Google Maps API provides geocoding services to find the latitude/longitude of an address. The service returns results in JSON. The following method
geocoding()
does the following:- Build a URL to access the geocoding service.
- Read from the URL.
- Build a JSON object for the content.
- Retrieve the first result from an array of results.
- Print out the information.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| public static void geocoding(String addr) throws Exception { // build a URL "sensor=false&address=" ; s += URLEncoder.encode(addr, "UTF-8" ); URL url = new URL(s); // read from the URL Scanner scan = new Scanner(url.openStream()); String str = new String(); while (scan.hasNext()) str += scan.nextLine(); scan.close(); // build a JSON object JSONObject obj = new JSONObject(str); if (! obj.getString( "status" ).equals( "OK" )) return ; // get the first result JSONObject res = obj.getJSONArray( "results" ).getJSONObject( 0 ); System.out.println(res.getString( "formatted_address" )); JSONObject loc = res.getJSONObject( "geometry" ).getJSONObject( "location" ); System.out.println( "lat: " + loc.getDouble( "lat" ) + ", lng: " + loc.getDouble( "lng" )); } |
Example:
http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false
------------------------------------------------
{ "results" : [ { "address_components" : [ { "long_name" : "Google Building 42", "short_name" : "Google Bldg 42", "types" : [ "premise" ] }, { "long_name" : "1600", "short_name" : "1600", "types" : [ "street_number" ] }, { "long_name" : "Amphitheatre Parkway", "short_name" : "Amphitheatre Pkwy", "types" : [ "route" ] }, { "long_name" : "Mountain View", "short_name" : "Mountain View", "types" : [ "locality", "political" ] }, { "long_name" : "Santa Clara County", "short_name" : "Santa Clara County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "California", "short_name" : "CA", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] }, { "long_name" : "94043", "short_name" : "94043", "types" : [ "postal_code" ] } ], "formatted_address" : "Google Bldg 42, 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 37.42198310000001, "lng" : -122.0853195 }, "southwest" : { "lat" : 37.4214139, "lng" : -122.0860042 } }, "location" : { "lat" : 37.4216548, "lng" : -122.0856374 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 37.4230474802915, "lng" : -122.0843128697085 }, "southwest" : { "lat" : 37.4203495197085, "lng" : -122.0870108302915 } } }, "place_id" : "ChIJPzxqWQK6j4AR3OFRJ6LMaKo", "types" : [ "premise" ] } ], "status" : "OK" }
------------------------------------------------
No comments:
Post a Comment