How to get json data from php server on android android

I have an application in which I want to get json data from php web server on Android mobile. what I have is a url and hit that url gives me json data, for example, {"items":[{"latitude":"420","longitude":"421"}]} . But I want to get this json format in an Android mobile phone and get the latitude and longitude values ​​from the json format.

how can we get this on an android mobile phone ??

Thanks in advance.

+7
source share
4 answers

Make a URL connection first

 String parsedString = ""; try { URL url = new URL(yourURL); URLConnection conn = url.openConnection(); HttpURLConnection httpConn = (HttpURLConnection) conn; httpConn.setAllowUserInteraction(false); httpConn.setInstanceFollowRedirects(true); httpConn.setRequestMethod("GET"); httpConn.connect(); InputStream is = httpConn.getInputStream(); parsedString = convertinputStreamToString(is); } catch (Exception e) { e.printStackTrace(); } 

Json string

 { "result": "success", "countryCodeList": [ {"countryCode":"00","countryName":"World Wide"}, {"countryCode":"kr","countryName":"Korea"} ] } 

Below I give details of the country

 JSONObject json = new JSONObject(jsonstring); JSONArray nameArray = json.names(); JSONArray valArray = json.toJSONArray(nameArray); JSONArray valArray1 = valArray.getJSONArray(1); valArray1.toString().replace("[", ""); valArray1.toString().replace("]", ""); int len = valArray1.length(); for (int i = 0; i < valArray1.length(); i++) { Country country = new Country(); JSONObject arr = valArray1.getJSONObject(i); country.setCountryCode(arr.getString("countryCode")); country.setCountryName(arr.getString("countryName")); arrCountries.add(country); } public static String convertinputStreamToString(InputStream ists) throws IOException { if (ists != null) { StringBuilder sb = new StringBuilder(); String line; try { BufferedReader r1 = new BufferedReader(new InputStreamReader( ists, "UTF-8")); while ((line = r1.readLine()) != null) { sb.append(line).append("\n"); } } finally { ists.close(); } return sb.toString(); } else { return ""; } } 
+9
source
  String jsonStr = '{"menu": {' + '"id": "file",' + '"value": "File",' + '"popup": {' + '"menuitem": [' + '{"value": "New", "onclick": "CreateNewDoc()"},' + '{"value": "Open", "onclick": "OpenDoc()"},' + '{"value": "Close", "onclick": "CloseDoc()"}' + ']' + '}' + '}}'; 

This JSON string is actually from http://json.org/example.html . It was the best I could find for this example.

Now that we have this, let's start using JSONObject . To do this, you will need the following import: import org.json.JSONObject;

 JSONObject jsonObj = new JSONObject(jsonStr); 

With this instance, we can do the following to track different pieces of data from a JSON string -

  // grabbing the menu object JSONObject menu = jsonObj.getJSONObject("menu"); Reading =========> HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString();=======>Here result is the json string // these 2 are strings String id = menu.getString("id"); String value = menu.getString("value"); // the popop is another JSON object JSONObject popup = menu.getJSONObject("popup"); // using JSONArray to grab the menuitems from under popop JSONArray menuitemArr = popupObject.getJSONArray("menuitem"); // lets loop through the JSONArray and get all the items for (int i = 0; i < menuitemArr.length(); i++) { // printing the values to the logcat Log.v(menuitemArr.getJSONObject(i).getString("value").toString()); Log.v(menuitemArr.getJSONObject(i).getString("onclick").toString()); } 

For a simple example, click here.

+1
source

send request from Android client

 public static JSONObject getJSONFromHttpPost(String URL) { try{ // Create a new HttpClient and Post Header DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(URL); String resultString = null; long t = System.currentTimeMillis(); HttpResponse response = (HttpResponse) httpclient.execute(httpPost); System.out.println("HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]"); // Get hold of the response entity (-> the data): HttpEntity entity = response.getEntity(); if (entity != null) { // Read the content stream InputStream instream = entity.getContent(); // convert content stream to a String resultString= convertStreamToString(instream); instream.close(); System.out.println("result String : " + resultString); //resultString = resultString.substring(1,resultString.length()-1); // remove wrapping "[" and "]" System.out.println("result String : " + resultString); // Transform the String into a JSONObject JSONObject jsonObjRecv = new JSONObject(resultString); // Raw DEBUG output of our received JSON object: System.out.println("<JSONObject>\n"+jsonObjRecv.toString()+"\n</JSONObject>"); return jsonObjRecv; } }catch(Exception e){e.printStackTrace();} return null; 

}

there is a function to convert the string

 private static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line =""; try { while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } 

now all you have to do is echo your string in JSON format on the server

+1
source

Use something like:

 try { HttpParams params = new BasicHttpParams(); HttpConnectionParams.setSoTimeout(params, 0); HttpClient httpClient = new DefaultHttpClient(params); //prepare the HTTP GET call HttpGet httpget = new HttpGet(urlString); //get the response entity HttpEntity entity = httpClient.execute(httpget).getEntity(); if (entity != null) { //get the response content as a string String response = EntityUtils.toString(entity); //consume the entity entity.consumeContent(); // When HttpClient instance is no longer needed, shut down the connection manager to ensure immediate deallocation of all system resources httpClient.getConnectionManager().shutdown(); //return the JSON response JSONObject object = new JSONObject(response.trim()); JSONArray jsonArray = object.getJSONArray("items"); if(jsonArray != null) { for(int i = 0 ; i < jsonArray.length() ; i++) { JSONObject object1 = (JSONObject) jsonArray.get(i); String latitude = object1.getString("latitude"); String longitude = object1.getString("longitude"); } } } }catch (Exception e) { e.printStackTrace(); } 
0
source

All Articles