Example usage for com.google.gson Gson fromJson

List of usage examples for com.google.gson Gson fromJson

Introduction

In this page you can find the example usage for com.google.gson Gson fromJson.

Prototype

@SuppressWarnings("unchecked")
public <T> T fromJson(JsonElement json, Type typeOfT) throws JsonSyntaxException 

Source Link

Document

This method deserializes the Json read from the specified parse tree into an object of the specified type.

Usage

From source file:jsonSploit.java

/**
 * @param args the command line arguments
 *///from   www .j a v  a  2 s . c  o m
public static void main(String[] args) {
    // TODO code application logic here
    Gson gson = new Gson();
    System.out.println("OBTENER SOLO UN ARRAY DE CADENA JSON");
    String myURL = "http://192.168.5.44/app_dev.php/cus/getaccount/50241109321.json";
    System.out.println("Requested URL:" + myURL);
    StringBuilder sb = new StringBuilder();
    URLConnection urlConn = null;
    InputStreamReader in = null;
    try {
        URL url = new URL(myURL);
        urlConn = url.openConnection();
        if (urlConn != null) {
            urlConn.setReadTimeout(60 * 1000);
        }
        if (urlConn != null && urlConn.getInputStream() != null) {
            in = new InputStreamReader(urlConn.getInputStream(), Charset.defaultCharset());

            BufferedReader bufferedReader = new BufferedReader(in);
            if (bufferedReader != null) {
                int cp;
                while ((cp = bufferedReader.read()) != -1) {
                    sb.append((char) cp);
                }
                bufferedReader.close();
            }
        }
        in.close();
    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException("Exception while calling URL:" + myURL, e);
    }
    String jsonResult = sb.toString();
    System.out.println(sb.toString());
    System.out.println("\n\n--------------------JSON OBJECT DISPLAY----------------------------\n\n");
    // convertimos el string a json Object
    JSONObject jsonObj = new JSONObject(jsonResult);
    // System.out.println("LA CADENA JSON CONVERTIDA EN OBJETO ES>");
    System.out.println(jsonObj.toString());

    System.out
            .println("\n\n--------------------- OBTENER ARRAYS DEL OBJETO JSON---------------------------\n\n");

    JSONArray jsonArray = new JSONArray();
    jsonArray.put(jsonObj);
    gson = new Gson();
    Iterator x = jsonObj.keys();
    while (x.hasNext()) {
        String key = (String) x.next();
        jsonArray.put(jsonObj.get(key));
        System.out.println(key);

    }
    System.out
            .println("\n\n--------------------- OBTENER ARRAYS DEL OBJETO JSON---------------------------\n\n");
    JsonParser jsonParser = new JsonParser();
    JsonObject jo = (JsonObject) jsonParser.parse(jsonResult);
    JsonArray jsonArr = jo.getAsJsonArray("data");
    Gson googleJson = new Gson();
    ArrayList jsonObjList = googleJson.fromJson(jsonArr, ArrayList.class);
    System.out.println("Listas existentes en data : " + jsonObjList.size());
    System.out.println("los elementos de la lista son  : " + jsonObjList.toString());
    String dataResult = jsonObjList.toString();

    System.out.println("\n\n--------------------- EL OBJETO JSON  ARRAY---------------------------\n\n");
    /// jsonArr.remove(1);
    String elemento1 = null;

    Iterator<JsonElement> nombreIterator = jsonArr.iterator();
    JsonElement elemento = null;
    while (nombreIterator.hasNext()) {
        elemento = nombreIterator.next();
        System.out.print(elemento + " \n");
        elemento1 = elemento.toString();
        System.out.println("El elemento 1 es " + elemento1);
    }

    cData data = gson.fromJson(elemento1, cData.class);
    // Account account = gson.fromJson(jo, Account.class);
    if (data.getAccount().getFirst_name() == null) {
        System.out.println("Error");
    } else {
        System.out.print(data.getAccount().getFirst_name());
    }
    // System.out.println(data.acount.getNumber());

    System.out.println("\n\n--------------------- OBTENEMOS EL OBJETO ACCOUNT---------------------------\n\n");
    //JsonObject jObject = (JsonObject) jsonParser.parse(elemento1);
    // System.out.println(jObject.getAsJsonPrimitive("number"));

}

From source file:ManagerQuery.java

License:Open Source License

private void checkMetricWidgetsRules(double lastMetricValue) {
    Parameters parameters;//w  w w.  j  a va2s. co m
    Rule rule;
    Gson gson = new Gson();
    boolean notifyEvents;
    //String min;
    //String max;
    String op;
    String thr1;
    String thr2;
    String desc;
    String widgetId;
    String widgetName;
    String widgetTitle;
    String dashboardId;
    String dashboardTitle;

    Properties conf2 = new Properties();
    FileInputStream in = null;
    try {
        in = new FileInputStream("./config.properties");
        conf2.load(in);
        in.close();
    } catch (FileNotFoundException ex) {
        Logger.getLogger(ManagerQuery.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(ManagerQuery.class.getName()).log(Level.SEVERE, null, ex);
    }

    //Reperimento elenco delle regole dagli widget che mostrano la metrica in esame
    Connection conn;
    try {
        conn = DriverManager.getConnection(conf2.getProperty("url"), conf2.getProperty("user"),
                conf2.getProperty("psw"));
        Statement stm = conn.createStatement();

        String getRulesQuery = "SELECT widgets.Id AS widgetId, widgets.name_w AS widgetName, widgets.title_w AS widgetTitle, widgets.id_dashboard AS dashboardId, widgets.parameters AS parameters, "
                + "dashboards.name_dashboard AS dashboardTitle "
                + "FROM Dashboard.Config_widget_dashboard AS widgets "
                + "INNER JOIN Dashboard.Config_dashboard AS dashboards "
                + "ON dashboards.Id = widgets.id_dashboard "
                + "WHERE widgets.type_w IN('widgetBarContent', 'widgetColunmContent', 'widgetGaugeChart', 'widgetSingleContent', 'widgetSpeedometer', 'widgetTimeTrend', 'widgetTimeTrendCompare') "
                + //Questo elenco  temporaneo, verr ampliato via via che gestiamo pi widgets
                "AND widgets.parameters IS NOT NULL " + "AND widgets.parameters <> '{}'"
                + "AND widgets.id_metric = '" + this.idProc + "'";

        ResultSet rs = stm.executeQuery(getRulesQuery);

        if (rs != null) {
            try {
                while (rs.next()) {
                    parameters = gson.fromJson(rs.getString("parameters"), Parameters.class);
                    if ((parameters == null) || (parameters.getThresholdObject() == null)) {
                        System.out.println("Widget " + rs.getString("widgetId") + " has invalid parameters "
                                + rs.getString("parameters"));
                        this.notifyEvent("Invalid parameters", "Widget name: " + rs.getString("widgetName")
                                + " - Widget id: " + rs.getString("widgetId"));
                        continue;
                    }

                    for (SingleRule singleRule : parameters.getThresholdObject()) {
                        rule = new Rule(singleRule.getNotifyEvents(), singleRule.getOp(), singleRule.getThr1(),
                                singleRule.getThr2(), singleRule.getDesc(),
                                String.valueOf(rs.getInt("widgetId")), rs.getString("widgetName"),
                                rs.getString("widgetTitle"), this.idProc,
                                String.valueOf(rs.getInt("dashboardId")), rs.getString("dashboardTitle"));
                        notifyEvents = singleRule.getNotifyEvents();
                        //Ma sono usati questi valori? Sembra di no (forse erano nel println?), provare a rimuoverli (commenta)
                        op = singleRule.getOp();
                        thr1 = singleRule.getThr1();
                        thr2 = singleRule.getThr2();
                        desc = singleRule.getDesc();
                        widgetId = String.valueOf(rs.getInt("widgetId"));
                        widgetName = rs.getString("widgetName");
                        widgetTitle = rs.getString("widgetTitle");
                        dashboardId = String.valueOf(rs.getInt("dashboardId"));
                        dashboardTitle = rs.getString("dashboardTitle");

                        //System.out.println("Thr1: " + rule.getThr1() + " - Thr2: " + rule.getThr2());

                        if (this.checkThrViolation(lastMetricValue, rule) && notifyEvents) {
                            System.out.println("Notifica eseguita");
                            this.notifyEvent(lastMetricValue, rule);
                        } else {
                            System.out.println("Notifica NON eseguita");
                        }
                    }
                }
                conn.close();
            } catch (SQLException ex) {
                Logger.getLogger(ManagerQuery.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    } catch (SQLException ex) {
        Logger.getLogger(ManagerQuery.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:crearAlbaran.java

License:Open Source License

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from  www.  java2s  . c  o m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        HttpSession ses = request.getSession();
        GestoSAT gestor = (GestoSAT) ses.getAttribute("gestor");

        int id = Integer.parseInt(request.getParameter("id"));
        String flag = request.getParameter("flag");

        Entrada entrada;
        Presupuesto presupuesto;
        Gson gJson = new Gson();

        Map empleados = (HashMap) gJson.fromJson(request.getParameter("trabajadores"), HashMap.class); // Parse JSON
        Map material = (HashMap) gJson.fromJson(request.getParameter("material"), HashMap.class); // Parse JSON

        if (flag.equals("E")) {
            entrada = (Entrada) gestor.getEntrada(id);
            // Crear presupost en default values
            id = gestor.crearPresupuesto(id,
                    new Presupuesto(request.getParameter("concepto"), new Date(), true, "", 0, 0, "", "", "",
                            entrada, request.getParameter("observaciones") + " | Documento auxiliar", empleados,
                            material, gestor));
            presupuesto = gestor.getPresupuesto(id);
        } else {
            presupuesto = (Presupuesto) gestor.getPresupuesto(id);
            entrada = presupuesto.getEntrada();
        }

        Cliente cli = entrada.getCliente();

        out.print(gestor.crearAlbaran(id, new Albaran(request.getParameter("concepto"),
                request.getParameter("entrega[provEntrega]"), request.getParameter("entrega[pobEntrega]"),
                Integer.parseInt(request.getParameter("entrega[cpEntrega]")),
                request.getParameter("entrega[calleEntrega]"), request.getParameter("entrega[numEntrega]"),
                request.getParameter("entrega[escaleraEntrega]"),
                Integer.parseInt(request.getParameter("entrega[pisoEntrega]")),
                request.getParameter("entrega[puertaEntrega]"), material, empleados,
                request.getParameter("observaciones"), presupuesto, cli, gestor)));

    }
}

From source file:InventoryIncrementItemServlet.java

License:Open Source License

@Override
public HttpResponse doWork(HttpRequest request, String rootDirectory) {
    HttpResponse response;/*from  w  w w. ja  v  a2s. com*/
    try {
        String inventoryUrl = "./web/inventory.json";
        File inventory = new File(inventoryUrl);

        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(inventory);
        while (sc.hasNext()) {
            sb.append(sc.nextLine());
        }
        sc.close();

        // Add this new book to the list of existing books
        Gson gson = new Gson();
        InventoryObject[] inventoryArray = gson.fromJson(sb.toString(), InventoryObject[].class);
        ArrayList<InventoryObject> inventoryList = new ArrayList<InventoryObject>(
                Arrays.asList(inventoryArray));

        String body = new String(request.getBody());
        System.out.println(body);
        String[] newItem = body.split("&");

        // Find existing item and add passed quantity
        int id = Integer.parseInt(newItem[0].split("=")[1]);
        int quant = Integer.parseInt(newItem[1].split("=")[1]);
        for (InventoryObject item : inventoryList) {
            if (item.getID() == id) {
                if (item.getQuantity() == 0 && quant == -1) {
                    return HttpResponseFactory.create400BadRequest(Protocol.CLOSE);
                } else {
                    item.setQuantity(item.getQuantity() + quant);
                }
            }
        }

        // Serialize new list
        Gson gsonBuilder = new GsonBuilder().setPrettyPrinting().create();
        String arrayListToJson = gsonBuilder.toJson(inventoryList);

        BufferedWriter bw = new BufferedWriter(new FileWriter(inventory));
        bw.write(arrayListToJson);
        bw.close();

        response = HttpResponseFactory.create200OK(inventory, Protocol.CLOSE);
    } catch (Exception e) {
        response = HttpResponseFactory.create404NotFound(Protocol.CLOSE);
    }
    return response;
}

From source file:AuthServlet.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");
    Gson gson = new Gson();

    try {/*  w ww  . j av a  2 s  . c  om*/
        //parsing json
        StringBuilder sb = new StringBuilder();
        String s;
        while ((s = request.getReader().readLine()) != null) {
            sb.append(s);
        }

        Token token = (Token) gson.fromJson(sb.toString(), Token.class);

        Connection conn = null;
        //PreparedStatement preparedStatement = null;

        Class.forName("com.mysql.jdbc.Driver");

        conn = DriverManager.getConnection(DB_URL, USER, PASS);

        String sql = "SELECT userID, tokenexpired FROM account WHERE token=?";
        PreparedStatement preparedStatement = conn.prepareStatement(sql);
        preparedStatement.setString(1, token.getAccessToken());
        ResultSet rs = preparedStatement.executeQuery();

        Status status = new Status();

        if (rs.next()) {
            java.sql.Timestamp tokenexpired = rs.getTimestamp("tokenexpired");
            java.util.Date now = new java.util.Date();
            long nowms = now.getTime();
            long expms = tokenexpired.getTime();

            if (nowms < expms) {
                //token valid
                int userid = rs.getInt("userID");
                status.setSuccess(true);
                status.setDescription("valid");
                status.setUserID(userid);

                response.getOutputStream().print(gson.toJson(status));
                response.getOutputStream().flush();
            } else {
                status.setSuccess(false);
                status.setDescription("expired");
                response.getOutputStream().print(gson.toJson(status));
                response.getOutputStream().flush();
            }
        } else {
            status.setSuccess(false);
            status.setDescription("invalid");
            response.getOutputStream().print(gson.toJson(status));
            response.getOutputStream().flush();
        }

        rs.close();

    } catch (Exception ex) {
        ex.printStackTrace();

    }
}

From source file:WSClient.java

public Response doRequest(String url, Map<String, String> params) throws IOException {

    Response result = null;//w  w  w  .ja  va2  s.c om
    //String url = "http://www.google.com/search?q=mkyong";
    Set<String> keys = params.keySet();

    String lsparams = "";
    for (String key : keys) {

        if (lsparams.equals("")) {
            lsparams += "?" + params.get(key);
        } else {
            lsparams += "&" + params.get(key);
        }
    }

    System.out.println(" ### PAREMTROS " + lsparams);
    //StringBuilder _url =  new StringBuilder(BASE_URL).append(url).append(params);
    StringBuilder _url = new StringBuilder(BASE_URL).append(url);
    System.out.println(" URL : " + _url.toString());

    URL obj = new URL(_url.toString());
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    // optional default is GET
    con.setRequestMethod("GET");
    //add request header
    con.setRequestProperty("User-Agent", USER_AGENT);
    con.setConnectTimeout(5000);
    int responseCode = con.getResponseCode();
    System.out.println("\nSending 'GET' request to   URL : " + url);
    System.out.println("Response Code : " + responseCode);

    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }

    in.close();

    System.out.println(response.toString());
    Gson gson = new Gson();

    String _response = response.toString();

    if (response != null) {
        result = gson.fromJson(_response, Response.class);
    }
    return result;
}

From source file:WSClient.java

public Response doRequest(String path, Object object) throws IOException {

    Response response = null;//w  w w.j a  v a  2s.c o  m

    try {
        URL url = new URL(BASE_URL + path);
        System.out.println("##### utl : " + BASE_URL + path);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/json");
        //String input = "{\"qty\":100,\"name\":\"iPad 4\"}";
        Gson gson = new Gson();
        String input = gson.toJson(object);

        OutputStream os = conn.getOutputStream();
        os.write(input.getBytes());
        os.flush();

        /*if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
           throw new RuntimeException("Failed : HTTP error code : "
              + conn.getResponseCode());
        }*/

        BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
        StringBuilder content = new StringBuilder("");
        String output;
        System.out.println("Output from Server .... \n");
        while ((output = br.readLine()) != null) {
            System.out.println(output);
            content.append(output);

        }
        conn.disconnect();

        System.out.println(" content :" + content.toString());
        response = gson.fromJson(content.toString(), Response.class);

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();

    }

    return response;
}

From source file:InventoryAddNewItemServlet.java

License:Open Source License

@Override
public HttpResponse doWork(HttpRequest request, String rootDirectory) {
    HttpResponse response;/*ww w .  j a v  a  2 s  .  c o m*/
    try {
        String inventoryUrl = "./web/inventory.json";
        File inventory = new File(inventoryUrl);

        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(inventory);
        while (sc.hasNext()) {
            sb.append(sc.nextLine());
        }
        sc.close();

        // Add this new book to the list of existing books
        Gson gson = new Gson();
        InventoryObject[] inventoryArray = gson.fromJson(sb.toString(), InventoryObject[].class);
        ArrayList<InventoryObject> inventoryList = new ArrayList<InventoryObject>(
                Arrays.asList(inventoryArray));

        String body = new String(request.getBody());
        System.out.println(body);
        String[] newItem = body.split("&");

        // Add new item
        int id, quant;
        String name;
        try {
            id = Integer.parseInt(newItem[0].split("=")[1]);
            name = newItem[1].split("=")[1].replace("+", " ");
            quant = Integer.parseInt(newItem[2].split("=")[1]);
        } catch (Exception e) {
            return HttpResponseFactory.create400BadRequest(Protocol.CLOSE);
        }

        InventoryObject item = new InventoryObject(id, name, quant);
        if (quant < 0) {
            return HttpResponseFactory.create400BadRequest(Protocol.CLOSE);
        }
        for (InventoryObject existingItem : inventoryList) {
            if (existingItem.getID() == id) {
                return HttpResponseFactory.create400BadRequest(Protocol.CLOSE);
            }
        }
        inventoryList.add(item);

        // Serialize new list
        Gson gsonBuilder = new GsonBuilder().setPrettyPrinting().create();
        String arrayListToJson = gsonBuilder.toJson(inventoryList);

        BufferedWriter bw = new BufferedWriter(new FileWriter(inventory));
        bw.write(arrayListToJson);
        bw.close();

        response = HttpResponseFactory.create200OK(inventory, Protocol.CLOSE);
    } catch (Exception e) {
        response = HttpResponseFactory.create404NotFound(Protocol.CLOSE);
    }
    return response;
}

From source file:CompanyController.java

public static <T extends Object> T fromJson(String json, Class<T> classe) {
    Gson gson = new Gson();
    gson.fromJson(json, classe);
    return gson.fromJson(json, classe);

}

From source file:FindDist.java

private static int findNearest(int zipcode, ArrayList<Integer> allZipCodes) throws IOException {
    Gson gson = new Gson();
    double min = Integer.MAX_VALUE;
    int nearestZipCode = allZipCodes.get(0);
    for (int availableZipcode : allZipCodes) {
        String distString = dist(zipcode, availableZipcode);
        Distance distObject = gson.fromJson(distString, Distance.class);
        if (min > Double.parseDouble(distObject.getDistance())) {
            min = Double.parseDouble(distObject.getDistance());
            nearestZipCode = availableZipcode;
        }/*w  w w  . j a v  a 2s .  c o  m*/
    }
    return nearestZipCode;
}