Archivi tag: json

Databases per Mobile Apps

In questo post, consapevoli dell’importanza dei dati e della gestione degli stessi, nello sviluppo di una qualunque app dinamica, elenchiamo una serie di tematiche inerenti le database, la sua creazione e manipolazione, come le più note databases,  all’interno del processo dello sviluppo  siano esse native, web o ibride.

http://www.ilgiornaledelcibo.it/intossicazione-da-metalli-pesanti/
http://www.ilgiornaledelcibo.it/intossicazione-da-metalli-pesanti/
  • Mobile Databases: javascript cordova CRUD
  • Mobile Databases: ajax PHP, CRUD (prossima uscita)
  • Mobile Databases: Android CRUD (prossima uscita)
  • Mobile Databases: iOs CRUD (prossima uscita)
  • Mobile Databases: Windows CRUD (prossima uscita)
  • Lista database popolari per lo sviluppo di Mobile Apps (prossima uscita)
  • vari su i databasi per lo sviluppo di mobile Apps (prossima uscita)

come fare il parsering dei dati in formato Json in Android

del formato json si deve conoscere …

appissue json rest http
appissue json rest http

In primo luogo si deve analizzare i dati, gli oggetti o le stringhe in formato Json.

In particolare Items è un oggetto, conformato da un Array da oggetti con CodPro, Brand, FormattedFullPrice.

{"Items": 
   [
	{
	"CodPro": "2234567899",
	"Brand": "XXX ZZZ",	
	"FormattedFullPrice": "Euro 2,620.00",
	},
        {
	"CodPro": "2234123456",
	"Brand": "ALPHA",	
	"FormattedFullPrice": "Euro 1,120.00",
	},
        {
	"CodPro": "2234234567",
	"Brand": "BETA",	
	"FormattedFullPrice": "Euro 1,112.00",
	},
   ]
}

dopo si devono creare le classi per gestire l’oggetto Item. creare la Classe Items con gli getters e setters e infine creare le constanti per gestire i nomi dei componenti degli array di oggetti.

LA CLASSE ITEMS

public class Items{
  private String brand;
  private String codPro;
  private String formattedFullPrice; 
  	
  
  public String getBrand(){
	return this.brand;
 }
public void setBrand(String brand){
	this.brand = brand;
 }
 public String getCodPro(){
	return this.codPro;
 }
 public void setCodPro(String cod10){
	this.codPro = codPro;
 }
 public String getFormattedFullPrice(){
	return this.formattedFullPrice;
 }
 public void setFormattedFullPrice(String  formattedFullPrice){
	this.formattedFullPrice = formattedFullPrice;
}
 	
}
...

LE VARIABILI

 private static final String ENTITY_NAME = "Items";  
 private static final String BRAND = "Brand";
 private static final String CODPRO = "CodPro";
 private static final String FORMATTEDFULLPRICE = "FormattedFullPrice"; 
PARSERING

private Boolean parseJson(String jsonString) {
 String myS;
 try {
  JSONObject jsono = new JSONObject(jsonString);
  JSONArray jarray = jsono.getJSONArray(ENTITY_NAME);

  for (int i = 0; i < jarray.length(); i++) {
    JSONObject object = jarray.getJSONObject(i);
    Items item = new Items();
    item.setCodPro(object.getString(CODPRO));
    item.setBrand(object.getString(BRAND));         item.setFormattedFullPrice(object.getString
    (FORMATTEDFULLPRICE));
    /* myS = (item.getCod10() + " " + item.getBrand()  + " " + item.getCod10());
    Log.d("item iessimo " , myS);*/
    listitems.add(item);
  }//endfor*/
  //test
  /*for (int i = 0; i < jarray.length(); i++) {
    Log.d(" *** ***   iesimo ",   listitems.get(i).getCod10());
   }*/
 } catch (JSONException e) {
      Log.d("Parse Json error ",e.toString());
      return false;
  }//endcarch
 return true;
}

Come usare HttpURLConnection in Android

Una URLConnection per HTTP (RFC 2616) consente di inviare e ricevere dati attraverso il web.

appissue json
appissue json

Questi dati possono essere di qualsiasi tipo e lunghezza.

Questa classe può essere utilizzata per inviare e ricevere dati in streaming cui lunghezza non è nota in anticipo.

  • Ottenere un nuovo HttpURLConnection chiamando URL.openConnection () e lanciando il risultato di HttpURLConnection.
  • Preparare la richiesta. La struttura primaria di una richiesta è suo URI. (la richiesta può comprendere anchei metadati quali le credenziali, i tipi di contenuti preferiti e cookies di sessione.
    Opzionalmente si può caricare un corpo della richiesta.
  • Le istanze devono essere configurati con setDoOutput (vero) se includono un corpo.
  • I dati vengono trasmessi ad un flusso restituito da getOutputStream ().
  • si legge la risposta. Il corpo di risposta può essere letto dal flusso restituito da getInputStream (). Se la risposta non ha corpo, il metodo restituisce un flusso di vuoto.
  • Disconnect. Una volta che il corpo della risposta è stato letto, il HttpURLConnection dovrebbe essere chiuso chiamando disconnessione().  Questa  disconnessione rilascia le risorse detenute dalla connessione in modo che possano essere chiusi o riutilizzati.

vedi su android reference HttpURLConnection


private String getJSONString(String strUrl){
  InputStream is = null;
  URL url = null;
  BufferedReader br = null;
  StringBuilder sb = new StringBuilder();
   HttpURLConnection conn = null;
  String jsonString = null;
  try {
      url = new URL(strUrl);
      conn = HttpURLConnection)url.openConnection();
      //set the timeout in milliseconds
      conn.setReadTimeout(15000);
      //set the timeout in milliseconds
      conn.setConnectTimeout(15000);
      conn.setRequestMethod("GET");
      conn.setDoInput(true);
      conn.connect();

      // Log.d("-----url 1 ", String.valueOf(url));
      int response = conn.getResponseCode();
      is = new BufferedInputStream(conn.getInputStream());
      //Log.d("!!!!!!!!is  2", String.valueOf(is));
      br = new BufferedReader(new InputStreamReader(is));
      byte[] b = new byte[1024];
      // to implement try catch…
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      //readstream
      while ( is.read(b) != -1) {
        baos.write(b);
      }
      //Log.d("+sb 3 ", String.valueOf(sb));
      //String JSONResp= new String(baos.toByteArray());
       byte[] data1 = baos.toByteArray();
      // to implement try catch…
      jsonString = new String(data1);
      //Log.d("JSON jsonSTRing  ", jsonString);
      //call parse json data
       myFlag = parseJson(jsonString);
  } catch (MalformedURLException e) {
       e.printStackTrace();
  } catch (java.net.ProtocolException e) {
       e.printStackTrace();
  } catch (IOException e) {
       e.printStackTrace();
  }finally{
      if(br!=null){
          try {
              br.close();
              is.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
          if(conn!=null) {
              conn.disconnect();
          }
      }
  }
  return jsonString;
}