CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

[SNIPPET] Json Parsing

Se questa discussione ti č stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Localitą
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    [SNIPPET] Json Parsing

    Ciao ragazzi
    In giro si trova davvero poco riguardo il parsing dei Json e dato che ho avuto la necessitą di utilizzare questi metodi, ritengo opportuno condividere con voi questi frammenti di codice

    Necessario:
    Libreria Gson: https://code.google.com/p/google-gson/


    Importate la libreria nel progetto di eclipse (io non uso AndroidStudio ma suppongo esista un repository su maven per Gson)

    Procuratevi un Json (file sul dispositivo o tramite inputstream da Url)

    Qui un esempio di Json:


    Prima di iniziare il parsing č importante anche stabilire quali oggetti sono presenti all'interno del file (JsonObject o JsonArray). Esiste un comodissimo tool online che categorizza il contenuto del Json: Json Parser Online

    Incollate il codice e nelle opzioni in alto a destra selezionate "Show JS Types", otterrete qualcosa di questo tipo:



    Ora entra in gioco Gson. Questa libreria infatti, permette il parsing dell'intero Json, semplicemente fornendogli una classe java appositamente creata a patto che il contenuto della classe rifletta il contenuto del Json.

    Un semplice esempio basato su questo file (riporto solo una parte):

    MyJsonObject.java


    MyJsonEntities.java


    MyMentions.java



    Una volta create queste classi il parsing diventa un giochetto di poche righe di codice:



    e voilą! Parsing del Json eseguito correttamente
    Va sottolineato che la gerarchia e la struttura delle classi che create deve rispecchiare quella del file Json ricevuto! (MyJsonObject > MyJsonEntities > MyMentions)

    Inutile dire che il parsing non va eseguito nel thread della UI ma eventualmente in un thread separato o in un AsyncTask

    Esistono anche librerie che possono semplificarvi la vita, quali ION (https://github.com/koush/ion) soprattutto se per ricevere il Json avete bisogno di autenticazione (Nel repo di ION date un'occhiata all'esempio relativo a twitter)


    Semplice esempio di parsing tramite Url


    Buon coding
    Ultima modifica di cesco; 09-05-14 alle 10:30
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  2.  
  3. #2
    Senior Droid


    Registrato dal
    May 2010
    Localitą
    Rivoli
    Messaggi
    426

    Ringraziamenti
    6
    Ringraziato 48 volte in 47 Posts
    Predefinito

    IntereFFante!
    Avevo fatto la stessa cosa lato server, in C#, ma il parsing su client avevo dovuto farlo a manina...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy