Example usage for com.google.gson JsonArray add

List of usage examples for com.google.gson JsonArray add

Introduction

In this page you can find the example usage for com.google.gson JsonArray add.

Prototype

public void add(JsonElement element) 

Source Link

Document

Adds the specified element to self.

Usage

From source file:ch.cyberduck.core.openstack.SwiftSegmentService.java

License:Open Source License

/**
 * Create the appropriate manifest structure for a static large object (SLO).
 * The number of object segments is limited to a configurable amount, default 1000. Each segment,
 * except for the final one, must be at least 1 megabyte (configurable).
 *
 * @param objects Ordered list of segments
 * @return ETag returned by the simple upload total size of segment uploaded path of segment
 *///  w ww. j  a va  2s  .  c  om
public String manifest(final String container, final List<StorageObject> objects) {
    JsonArray manifestSLO = new JsonArray();
    for (StorageObject s : objects) {
        JsonObject segmentJSON = new JsonObject();
        // this is the container and object name in the format {container-name}/{object-name}
        segmentJSON.addProperty("path", String.format("/%s/%s", container, s.getName()));
        // MD5 checksum of the content of the segment object
        segmentJSON.addProperty("etag", s.getMd5sum());
        segmentJSON.addProperty("size_bytes", s.getSize());
        manifestSLO.add(segmentJSON);
    }
    return manifestSLO.toString();
}

From source file:ch.eitchnet.csvrestendpoint.marshaller.CsvDataToHeaderJsonMarshaller.java

License:Apache License

@Override
public JsonObject marshall(CSVParser csvParser) {

    JsonObject root = new JsonObject();
    root.addProperty("msg", "-");

    JsonArray data = new JsonArray();

    Set<Entry<String, Integer>> header = csvParser.getHeaderMap().entrySet();
    for (Entry<String, Integer> entry : header) {
        data.add(new JsonPrimitive(entry.getKey()));
    }//from w w w  .j av  a 2s .  c  om

    root.add("data", data);

    return root;
}

From source file:ch.eitchnet.csvrestendpoint.marshaller.CsvDataToJsonMarshaller.java

License:Apache License

@Override
public JsonObject marshall(CSVParser csvParser) {

    // validate any references to column names
    Map<String, Integer> headerMap = csvParser.getHeaderMap();
    validate(headerMap);/* w  ww.j a  v  a2  s.  c  om*/

    // filter
    List<CSVRecord> allRecords = new ArrayList<>();
    long dataSetSize = 0;
    for (CSVRecord record : csvParser) {
        dataSetSize++;
        if (isSelected(headerMap, record))
            allRecords.add(record);
    }

    // sort
    if (StringHelper.isNotEmpty(sortBy)) {
        Integer columnIndex = headerMap.get(sortBy);
        if (this.ascending)
            allRecords.sort((r1, r2) -> r1.get(columnIndex).compareTo(r2.get(columnIndex)));
        else
            allRecords.sort((r1, r2) -> r2.get(columnIndex).compareTo(r1.get(columnIndex)));
    }

    // paging
    Paging<CSVRecord> paging = Paging.asPage(allRecords, this.pageSize, this.page);

    // get page
    List<CSVRecord> page = paging.getPage();

    // build JSON response
    JsonObject root = new JsonObject();
    root.addProperty("msg", "-");
    root.addProperty("draw", this.draw);
    root.addProperty("dataSetSize", dataSetSize);
    root.addProperty("nrOfElements", paging.getNrOfElements());

    if (StringHelper.isNotEmpty(sortBy))
        root.addProperty("sortBy", this.sortBy);
    root.addProperty("ascending", this.ascending);
    root.addProperty("nrOfPages", paging.getNrOfPages());
    root.addProperty("pageSize", paging.getPageSize());
    root.addProperty("page", paging.getPageToReturn());

    // prune any unwanted columns
    if (!this.returnFields.isEmpty()) {
        headerMap.keySet().retainAll(this.returnFields);
    }

    // add items
    JsonArray data = new JsonArray();
    for (CSVRecord record : page) {
        JsonObject element = new JsonObject();
        for (Entry<String, Integer> entry : headerMap.entrySet()) {
            String column = entry.getKey();
            String value = record.get(entry.getValue());
            element.addProperty(column, value);
        }
        data.add(element);
    }
    root.add("data", data);

    return root;
}

From source file:ch.eitchnet.csvrestendpoint.marshaller.CsvNamesToJsonMarshaller.java

License:Apache License

public JsonObject marshall(List<String> names) {

    JsonObject root = new JsonObject();
    root.addProperty("msg", "-");

    JsonArray data = new JsonArray();

    for (String name : names) {
        data.add(new JsonPrimitive(name));
    }//from   ww w  . java  2 s  . c o  m

    root.add("data", data);

    return root;
}

From source file:ch.epfl.leb.sass.models.Microscope.java

License:Open Source License

/**
 * Returns information about the sample fluorophores.
 * //from  ww w  .  ja v  a 2 s  .c o m
 * @return A JsonObject containing information about the fluorophores.
 */
public JsonElement toJsonFluorescence() {
    JsonArray jsonArray = new JsonArray();
    for (Fluorophore f : fluorophores) {
        jsonArray.add(f.toJson());
    }

    return jsonArray;
}

From source file:ch.epfl.leb.sass.server.RemoteSimulationServiceHandler.java

License:Open Source License

/**
 * Returns messages about changes in the simulation state as a JSON string.
 * //  w  ww.  j  a v a  2  s.co m
 * Unlike {@link #toJsonState(int id) toJsonState()}, which returns
 * information about the *current* state of just the fluorophores, this
 * method returns the messages from individual simulation components that
 * contain information about changes in their state that have occurred since
 * the last time this method was called.
 * 
 * @param id The simulation ID.
 * @return A JSON string containing the messages that were recorded.
 * @throws UnknownSimulationIdException
 */
@Override
public String toJsonMessages(int id) throws UnknownSimulationIdException {
    Simulator sim = manager.getSimulator(id);
    if (sim == null) {
        throw new UnknownSimulationIdException();
    }

    List<Message> messages = sim.getMessages();
    JsonArray json = new JsonArray();
    for (Message msg : messages) {
        json.add(msg.toJson());
    }

    try {
        Gson gson = new Gson();
        String jsonString = gson.toJson(json);
        return jsonString;
    } catch (Exception ex) {
        String err = "Unable to convert JSON object to string.";
        LOGGER.log(Level.SEVERE, err);
        ex.printStackTrace();
        return null;
    }
}

From source file:ch.epfl.leb.sass.simulator.internal.DefaultSimulator.java

License:Open Source License

/**
 * Returns messages about changes in the simulation state as a JSON object.
 * /*from  w  w  w  .  j a va 2  s.  c o  m*/
 * Unlike {@link #toJsonState() toJsonState()}, which returns
 * information about the *current* state of the simulation, this method
 * returns the messages from individual simulation components that contain
 * information about changes in their state that have occurred since the
 * last time this method was called.
 * 
 * @return A JSON object containing the simulation messages.
 */
@Override
public JsonElement toJsonMessages() {
    JsonArray json = new JsonArray();
    for (Message msg : this.getMessages()) {
        json.add(msg.toJson().getAsJsonObject());
    }

    Gson gson = new Gson();
    return gson.fromJson(json, JsonArray.class);
}

From source file:ch.ethz.coss.nervous.pulse.sql.SqlRequestWorker.java

License:Open Source License

@Override
public void run() {
    try {/*  ww  w  .  j a  v  a2  s . c o  m*/

        JsonObject feature = null;
        JsonArray features = null;
        JsonObject featureCollection = null;

        try {

            /***** SQL get ********/
            // Fetch data
            PreparedStatement datastmt = sqlse.getSensorValuesFetchStatement(connection, ptmRequest.readingType,
                    ptmRequest.startTime, ptmRequest.endTime);
            ResultSet rs = datastmt.executeQuery();
            featureCollection = new JsonObject();
            features = new JsonArray();
            // System.out.println("SQL query result size =
            // "+rs.getFetchSize());
            long currentTimeMillis = System.currentTimeMillis();
            while (rs.next()) {
                long volatility = rs.getLong("Volatility");
                long recordTime = rs.getLong("RecordTime");

                //               System.out.println("Volatility = " + volatility);
                //               System.out.println("currentTimeMillis = " + currentTimeMillis);
                //               System.out.println("left time = " + (currentTimeMillis - (recordTime + (volatility * 1000))));
                if (volatility != -1)
                    if (volatility == 0 || currentTimeMillis > (recordTime + (volatility * 1000))) {
                        //                  System.out.println("Continue");
                        continue;
                    }

                String lat = rs.getString("lat");
                String lon = rs.getString("lon");

                feature = new JsonObject();
                feature.addProperty("type", "Feature");
                JsonObject point = new JsonObject();
                point.addProperty("type", "Point");
                JsonArray coord = new JsonArray();
                coord.add(new JsonPrimitive(lat));
                coord.add(new JsonPrimitive(lon));
                point.add("coordinates", coord);
                feature.add("geometry", point);

                JsonObject properties = new JsonObject();

                properties.addProperty("volatility", volatility);
                if (ptmRequest.readingType == 0) {
                    String luxVal = rs.getString("Light");
                    // System.out.println("Reading instance of light");
                    properties.addProperty("readingType", "" + 0);
                    properties.addProperty("level", luxVal);
                } else if (ptmRequest.readingType == 1) {
                    String soundVal = rs.getString("Decibel");
                    properties.addProperty("readingType", "" + 1);
                    properties.addProperty("level", soundVal);
                } else if (ptmRequest.readingType == 2) {
                    String message = rs.getString("Message");
                    message = message.trim();
                    properties.addProperty("readingType", "" + 2);

                    if (message.length() <= 0) {
                        message = "***Empty Message***";
                        continue;
                    }

                    properties.addProperty("message", message);

                } else {
                    // System.out.println("Reading instance not known");
                }

                feature.add("properties", properties);
                features.add(feature);

                // if((features.getAsJsonArray()).size() >= 60000){
                // featureCollection.add("features", features);
                // pSocketServer.sendToSocket(ptmRequest.webSocket,
                // ptmRequest.requestID, featureCollection.toString(),
                // false);
                // featureCollection = new JsonObject();
                // featureCollection = new JsonObject();
                // features = new JsonArray();
                // try {
                // Thread.sleep(10);
                // } catch (Exception e) {
                // // TODO Auto-generated catch block
                // e.printStackTrace();
                // }
                // break;
                // }
            }

            featureCollection.add("features", features);
            // System.out.println("Feature collection +
            // "+featureCollection.toString());
            pSocketServer.sendToSocket(ptmRequest.webSocket, ptmRequest.requestID, featureCollection.toString(),
                    true);

            /*************/

        } catch (JsonParseException e) {
            System.out.println("can't save json object: " + e.toString());
        }

    } catch (Exception e) {
        e.printStackTrace();
        Log.getInstance().append(Log.FLAG_WARNING, "Generic error");
    } finally {
        cleanup();
    }
}

From source file:ch.ethz.coss.nervous.pulse.sql.SqlUploadWorker.java

License:Open Source License

@SuppressWarnings("deprecation")
@Override//from   w w  w  .j  a  va 2s  . c o m
public void run() {
    // InputStream is;
    DataInputStream in = null;

    try {
        in = new DataInputStream(socket.getInputStream());
        boolean connected = true;
        while (connected) {
            connected &= !socket.isClosed();
            Visual reading = null;
            JsonObject featureCollection = new JsonObject();
            JsonArray features = new JsonArray();
            JsonObject feature = null;
            try {
                // String json = in.readUTF();

                // StringBuffer json = new StringBuffer();
                // String tmp;
                String json = null;
                try {
                    // while ((tmp = in.read()) != null) {
                    // json.append(tmp);
                    // }

                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    byte buffer[] = new byte[1024];
                    for (int s; (s = in.read(buffer)) != -1;) {
                        baos.write(buffer, 0, s);
                    }
                    byte result[] = baos.toByteArray();
                    json = new String(result);

                    // use inputLine.toString(); here it would have whole
                    // source
                    in.close();
                } catch (MalformedURLException me) {
                    System.out.println("MalformedURLException: " + me);
                } catch (IOException ioe) {
                    System.out.println("IOException: " + ioe);
                }
                System.out.println("JSON STRING = " + json);
                System.out.println("JSON Length = " + json.length());

                if (json.length() <= 0)
                    continue;
                reading = new JSONDeserializer<Visual>().deserialize(json, Visual.class);
                feature = new JsonObject();

                feature.addProperty("type", "Feature");
                // JsonArray featureList = new JsonArray();
                // iterate through your list
                // for (ListElement obj : list) {
                // {"geometry": {"type": "Point", "coordinates":
                // [-94.149, 36.33]}
                JsonObject point = new JsonObject();
                point.addProperty("type", "Point");
                // construct a JSONArray from a string; can also use an
                // array or list
                JsonArray coord = new JsonArray();
                if (reading == null || reading.location == null)
                    continue;
                else if (reading.location.latnLong[0] == 0 && reading.location.latnLong[1] == 0)
                    continue;

                coord.add(new JsonPrimitive(new String("" + reading.location.latnLong[0])));
                coord.add(new JsonPrimitive(new String("" + reading.location.latnLong[1])));

                point.add("coordinates", coord);
                feature.add("geometry", point);

                JsonObject properties = new JsonObject();
                if (reading.type == 0) {
                    // System.out.println("Reading instance of light");
                    properties.addProperty("readingType", "" + 0);
                    properties.addProperty("level", "" + ((LightReading) reading).lightVal);
                } else if (reading.type == 1) {
                    properties.addProperty("readingType", "" + 1);
                    properties.addProperty("level", "" + ((NoiseReading) reading).soundVal);
                } else if (reading.type == 2) {
                    properties.addProperty("readingType", "" + 2);
                    properties.addProperty("message", "" + ((TextVisual) reading).textMsg);
                } else {
                    // System.out.println("Reading instance not known");
                }
                properties.addProperty("recordTime", reading.timestamp);
                properties.addProperty("volatility", reading.volatility);
                feature.add("properties", properties);
                features.add(feature);
                featureCollection.add("features", features);

                if (reading.volatility != 0) {
                    /***** SQL insert ********/
                    // Insert data
                    System.out.println("before uploading SQL - reading uuid = " + reading.uuid);
                    System.out.println("Reading volatility = " + reading.volatility);
                    PreparedStatement datastmt = sqlse.getSensorInsertStatement(connection, reading.type);
                    if (datastmt != null) {
                        // System.out.println("datastmt - " +
                        // datastmt.toString());
                        List<Integer> types = sqlse.getArgumentExpectation((long) reading.type);
                        datastmt.setString(1, reading.uuid);
                        if (reading.type == 0) {
                            datastmt.setLong(2, reading.timestamp);
                            datastmt.setLong(3, reading.volatility);
                            datastmt.setDouble(4, ((LightReading) reading).lightVal);
                            datastmt.setDouble(5, reading.location.latnLong[0]);
                            datastmt.setDouble(6, reading.location.latnLong[1]);
                        } else if (reading.type == 1) {
                            datastmt.setLong(2, reading.timestamp);
                            datastmt.setLong(3, reading.volatility);
                            datastmt.setDouble(4, ((NoiseReading) reading).soundVal);
                            datastmt.setDouble(5, reading.location.latnLong[0]);
                            datastmt.setDouble(6, reading.location.latnLong[1]);
                        } else if (reading.type == 2) {
                            datastmt.setLong(2, reading.timestamp);
                            datastmt.setLong(3, reading.volatility);
                            datastmt.setString(4, ((TextVisual) reading).textMsg);
                            datastmt.setDouble(5, reading.location.latnLong[0]);
                            datastmt.setDouble(6, reading.location.latnLong[1]);
                        }
                        // System.out.println("datastmt after populating - "
                        // + datastmt.toString());

                        datastmt.addBatch();
                        datastmt.executeBatch();
                        datastmt.close();
                    }
                    /*************/

                }

            } catch (JsonParseException e) {
                System.out.println("can't save json object: " + e.toString());
            }
            // output the result
            // System.out.println("featureCollection=" +
            // featureCollection.toString());

            String message = featureCollection.toString();
            pSocketServer.sendToAll(message);

        }

    } catch (EOFException e) {
        e.printStackTrace();
        Log.getInstance().append(Log.FLAG_WARNING, "EOFException occurred, but ignored it for now.");
    } catch (IOException e) {
        e.printStackTrace();
        Log.getInstance().append(Log.FLAG_WARNING, "Opening data stream from socket failed");
    } catch (Exception e) {
        e.printStackTrace();
        Log.getInstance().append(Log.FLAG_WARNING, "Generic error");
    } finally {
        cleanup();
        try {
            in.close();
            in = null;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            ;
        }
    }
}

From source file:ch.ethz.coss.nervous.pulse.WriteJSON.java

License:Open Source License

public static void sendGeoJSON(Socket socket, Object o) {

    try {//w ww .j  av a  2  s.  co  m
        Scanner in = new Scanner(socket.getInputStream());

        while (!in.nextLine().isEmpty())
            ;

        PrintWriter out = new PrintWriter(socket.getOutputStream());

        Visual reading = (Visual) o;

        JsonObject feature = new JsonObject();
        try {
            feature.addProperty("type", "Feature");
            // JsonArray featureList = new JsonArray();
            // iterate through your list
            // for (ListElement obj : list) {
            // {"geometry": {"type": "Point", "coordinates": [-94.149,
            // 36.33]}
            JsonObject point = new JsonObject();
            point.addProperty("type", "Point");
            // construct a JSONArray from a string; can also use an array or
            // list
            JsonArray coord = new JsonArray();
            coord.add(new JsonPrimitive(reading.location.latnLong[0]));
            coord.add(new JsonPrimitive(reading.location.latnLong[1]));
            point.add("coordinates", coord);
            feature.add("geometry", point);
            JsonObject properties = new JsonObject();
            if (reading.type == 0) {
                // System.out.println("Reading instance of light");
                properties.addProperty("readingType", "" + 0);
                properties.addProperty("lightLevel", "" + ((LightReading) reading).lightVal);
            } else if (reading.type == 1) {
                properties.addProperty("readingType", "" + 1);
                properties.addProperty("noiseLevel", "" + ((NoiseReading) reading).soundVal);
            } else if (reading.type == 2) {
                properties.addProperty("readingType", "" + 2);
                properties.addProperty("message", "" + ((TextVisual) reading).textMsg);
            } else {
                // System.out.println("Reading instance not known");
            }

            feature.add("properties", properties);

            // }
        } catch (JsonParseException e) {
            // System.out.println("can't save json object: " +
            // e.toString());
        }
        // output the result
        // System.out.println("featureCollection=" + feature.toString());

        String message = feature.toString();

        out.println("HTTP/1.0 200 OK");
        out.println("Content-Type: text/json");
        out.printf("Content-Length: %d%n", message.length());
        out.println("Access-Control-Allow-Origin: *");
        out.println();
        out.println(message);
        out.flush();

        socket.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}