Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Web service con json

Estas en el tema de Web service con json en el foro de Java en Foros del Web. estoy obteniendo datos de un web service con json y struct en java de esta manera { "STOCK":[ {"PROD":"1589","CANT1":"0010010","CANT2":"0.000 "}, {"PROD":"1657","CANT1":"0010500","CANT2":"0.000 "} ], "ERROR":"0" } ...
  #1 (permalink)  
Antiguo 31/10/2013, 14:53
 
Fecha de Ingreso: agosto-2010
Mensajes: 127
Antigüedad: 13 años, 8 meses
Puntos: 1
Web service con json

estoy obteniendo datos de un web service con json y struct en java de esta manera

{
"STOCK":[
{"PROD":"1589","CANT1":"0010010","CANT2":"0.000 "},

{"PROD":"1657","CANT1":"0010500","CANT2":"0.000 "}
],
"ERROR":"0"
}

recorro los datos de esta manera

URL url = new URL("http://localhost/stock/rest/provider/STOCK");
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");



BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String output;
while ((output = br.readLine()) != null) {
JSONObject json = (JSONObject) new JSONParser().parse(output);


System.out.println( "valor "+ (String) json.get("STOCK").toString() );



}



lo que quiero saber es como recorrer el array de stock para obtoner el codigo y las cantidades.
  #2 (permalink)  
Antiguo 31/10/2013, 22:26
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Web service con json

Hola:

No es sencillo hacerlo con código. Para estas cosas conviene usar alguna librería, como GSON http://code.google.com/p/google-gson/ que te convierte de forma fácil de un texto json a una clase java. Tendrías que hacerte, por ejemplo, una clase Producto con los atributos

Código Java:
Ver original
  1. public class Producto {
  2.     int PROD;
  3.     int CANT1;
  4.     float CANT2;
  5. }

y una clase para el total del json

Código Java:
Ver original
  1. public class ListaProductos {
  2.    Producto [] STOCK;
  3.    int ERROR;
  4. }

y Gson será capaz de convertirte tu json en un array de Productos debidamente relleno de forma tan sencilla como

Código Java:
Ver original
  1. Gson gson = new Gson();
  2. ListaProductos lista = gson.fromJSON(tuJson);

Gson también hace lo contrario. Si tuvieras una clase java ya rellena, sería capaz de extraerte un json para ella.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 04/11/2013, 10:56
 
Fecha de Ingreso: agosto-2010
Mensajes: 127
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Web service con json

encontre l solucion aqui esta

deben tener importadas las siguientes librerias
import org.json.simple.parser.JSONParser;
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;


URL url = new URL("http://localhost/stock/rest/provider/STOCK");
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");



BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String output;
while ((output = br.readLine()) != null) {
JSONObject json = (JSONObject) new JSONParser().parse(output);


System.out.println( "valor "+ (String) json.get("STOCK").toString() );

JSONArray genreArray = (JSONArray) json.get("STOCK");

for(int m=0;m<genreArray.size();m++){
JSONObject firstGenre = (JSONObject) genreArray.get(m);
System.out.println("WERKS "+firstGenre.get("CANT1"));


}

}

Etiquetas: json, service, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:24.