Colección de métodos comunes para analizar datos en formato JSON en Android

Los archivos en formato JSON a analizar son los siguientes:

    [{"id": "5", "versión": "1.0", "nombre": "xiaowang"},

    {"id": "10", "versión": "2.0", "nombre": "lisi"}]

1. Use JSONObject para analizar datos JSON

  Proporcionado oficialmente, no es necesario importar paquetes jar de terceros; ingrese directamente el código, de la siguiente manera:

 

1 // 方法 一 : 使用 JSONObject 
 2 privado void parseJSONWithJSONObject (String JsonData) { 
 3 try 
 4 { 
 5          JSONArray jsonArray = new JSONArray (jsonData); 
 6 para (int i = 0; i <jsonArray.length (); i ++) { 
 7              JSONObject jsonObject = jsonArray.getJSONObject (i); 
 Identificación de 8 cadenas = jsonObject.getString ("id"); 
 9 Nombre de cadena = jsonObject.getString ("nombre"); 
Versión de 10 cadenas = jsonObect.getString ("versión"); 
11 
12 System.out.println ("id" + id + "; nombre" + nombre + "; versión" + versión);
17 e.printStackTrace (); 
18} 
19}

 

  Interpretación de pasos:

     Defina una matriz JSON, utilizada para pasar los datos devueltos por el servidor a un objeto JSONArray; luego recorra el JSONArray,

   Saque cada elemento (objeto JSONObject) de él y luego simplemente llame al método getString () para obtener los datos.

 

Segundo, usa GSON

  Para utilizar este método para analizar datos JSON, primero debe agregar el paquete jar GSON; la dirección de descarga es: http://download.csdn.net/detail/a924571572/5824225

    El paquete jar a importar se muestra en la figura: 

  Aquí está el código central:

 

// 方法 二 : 使用 GSON 
private void parseJSONWithGSON (String JsonData) { Gson gson = new Gson ();
    Lista <App> applist = gson. fromJson (jsonData, 
        nuevo TypeToken <List <App>> () {} .getType ()); 
    for (Aplicación de la aplicación: lista de aplicaciones) { 
         System.out.println ("id" + app.getId () + "; nombre" + app.getName () + "; versión" + app.getVersion ()); 
    } 
}
    

 

  Interpretación de pasos:

   De acuerdo con el contenido de datos JSON, debe definir una clase para almacenar datos, como la clase de aplicación:

 

Aplicación de clase pública { 
    ID de cadena privada; 
    nombre de cadena privado; 
    versión de cadena privada; 

    public String getId () { 
        return id; 
    }   
    
    public void setId (String id) { 
        this.id = id; 
    } 
  
    // ...... 
}

 

     Si solo hay un conjunto de datos, puede llamar directamente al siguiente código     

GSON gson = new GSON (); 
Aplicación app = gson.fromJson (jsonData, App.class);

     Si hay varios conjuntos de datos, debe usar TypeToken para pasar el tipo de datos esperado al método fromJson ():

List <App> app = gson.fromJson (jsonData, new TypeToken << List <App> >> () .getType ());

    Luego use los métodos del objeto Aplicación directamente, como: getId, getName ... para obtener los datos

  Suplemento:

   ¿Qué es TypeToken?

    El uso de TypeToken es muy simple. Como el código anterior, siempre que la clase genérica que necesita obtener el tipo se use como un parámetro genérico de TypeToken para construir una subclase anónima, podemos obtener el genérico de la clase genérica que usamos a través del método getType () Tipo de parámetro tipo.

 

Tres, usa Jackson

  Las herramientas de terceros saben cómo manejarlo, la dirección de descarga del paquete jar: http://wiki.fasterxml.com/JacksonDownload

    Que necesita usar:

      Jackson- DataBind se proporciona .jar paquete de núcleo (mosto) basado en el "modo de flujo" API parsed [ JsonPaser (JSON corriente de lectura), JsonGenerator (flujo de salida JSON)]

        Jackson- Anotaciones .jar paquete de datos (opcional), se proporciona sobre la base del "objeto de enlace" y "modelo de árbol" API asociado. [ObjectMapper, JsonNode (nodo de árbol)]

paquete de anotación       jackson- core .jar (opcional), que proporciona la función de anotación.

   Método principal:

 

público estático vacío parseJSONWithJackson (String jsonData) {Mapper  
     ObjectMapper = new ObjectMapper ();  
    prueba {   
         App app = mapper. readValue (jsonData, App.class);
     System.out.println ("id" + app.getId () + "; nombre" + app.getName () + "; versión" + app.getVersion ());
   } catch (JsonParseException e) { 
     e.printStackTrace (); 
   } catch (JsonMappingException e) { 
     e.printStackTrace (); 
   } catch (IOException e) { 
     e.printStackTrace (); 
   } 
}

Código de copia

 

Cuatro, use Fastjson
  no mucho, solo vaya a la dirección de descarga del paquete jar: http://download.csdn.net/download/finaljia/5293875

  Código del núcleo:

 

JSONArray jarr = JSONArray. parseArray (jsonData); //JSON.parseArray(jsonStr);  
para ( Iterator iterador = Jarr. iterador (); iterator.hasNext ();) {  
     JSONObject trabajo = (JSONObject) iterator.next ();  
    ID de cadena = job.get ("id"). ToString (); 
    Nombre de cadena = job.get ("nombre"). ToString (); 
    Versión de cadena = job.get ("versión"). ToString (); 

    System.out.println ("id" + id + "; nombre" + nombre + "; versión" + versión); 
}  

 

10 artículos originales publicados · Me gusta 11 · Visitas 20,000+

Supongo que te gusta

Origin blog.csdn.net/u013323018/article/details/83098964
Recomendado
Clasificación