List of usage examples for com.google.gson JsonArray add
public void add(JsonElement element)
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(); } }