List of usage examples for com.fasterxml.jackson.core TreeNode get
TreeNode get(int index);
From source file:com.centurylink.cloud.sdk.policy.services.client.domain.ActionSettingsDeserializer.java
@Override public ActionSettingsMetadata deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { TreeNode node = jsonParser.getCodec().readTree(jsonParser); //email settings if (node.get(RECIPIENTS).isArray()) { ArrayNode recipientsNode = ((ArrayNode) node.get(RECIPIENTS)); List<String> recipients = new ArrayList<>(recipientsNode.size()); recipientsNode.forEach(recipient -> recipients.add(recipient.asText())); return new ActionSettingsEmailMetadata().recipients(recipients); }/* w w w. j ava2 s .c om*/ return null; }
From source file:gaffer.serialisation.simple.json.hyperloglogplus.HyperLogLogPlusJsonDeserialiser.java
@Override public HyperLogLogPlus deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException { final TreeNode treeNode = jsonParser.getCodec().readTree(jsonParser); final TreeNode coreHyperLogLogPlusObject = treeNode.get("hyperLogLogPlus"); if (coreHyperLogLogPlusObject != null) { final TextNode jsonNodes = (TextNode) coreHyperLogLogPlusObject .get(HyperLogLogPlusJsonConstants.HYPER_LOG_LOG_PLUS_SKETCH_BYTES_FIELD); final byte[] nodeAsString = jsonNodes.binaryValue(); final HyperLogLogPlus hyperLogLogPlus = HyperLogLogPlus.Builder.build(nodeAsString); return hyperLogLogPlus; } else {//from ww w .j ava 2s . com throw new IllegalArgumentException("Recieved null or empty HyperLogLogPlus sketch"); } }
From source file:net.maurerit.zkb.KillParser.java
private Kill parseKill(TreeNode node) { Kill parsedKill = new Kill(); parsedKill.setKillId(longFromText(node.get(KILL_ID_KEY))); parsedKill.setKillTime(dateFromText(node.get(KILL_TIME_KEY))); parsedKill.setSolarSystemId(intFromText(node.get(SOLOR_SYS_KEY))); parsedKill.setMoonId(intFromText(node.get(MOON_ID_KEY))); parsedKill.setVictim(parseVictim(node.get(VICTIM_KEY))); parsedKill.setTotalValue(doubleFromText(node.get(ZKB_KEY).get(TOTAL_VALUE_KEY))); parsedKill.setPoints(longFromText(node.get(ZKB_KEY).get(POINTS_KEY))); if (node.get(ATTACKERS_KEY) != null) { parsedKill.setAttackers(parseAttackers(node.get(ATTACKERS_KEY))); }//from w w w . j a v a 2 s. c om parsedKill.setVictim(parseVictim(node.get(VICTIM_KEY))); if (node.get(ITEMS_KEY) != null) { parsedKill.setItems(parseItems(node.get(ITEMS_KEY))); } return parsedKill; }
From source file:com.anrisoftware.simplerest.oanda.rest.AbstractInstrumentHistory.java
private Collection<T> parseResponseList0(ObjectMapper mapper, JsonParser parser) throws IOException, JsonParseException, JsonMappingException { TreeNode tree = parser.readValueAsTree(); TreeNode candlesNode = tree.get(CANDLES_NAME); int size = candlesNode.size(); TreeNode node;// w w w. ja v a 2 s . co m for (int i = 0; i < size; i++) { node = candlesNode.get(i); T obj = mapper.readValue(node.traverse(), candleType); log.parsedInstrumentHistory(obj); container.add(obj); } return container; }
From source file:com.apteligent.ApteligentJavaClient.java
/** * @param appID appId (string, optional): The app to retrieve data about, * @param metricType The metric to retrieve * @param duration can only be 1440 (24 hours) or 43200 (1 month) * @param groupBy TODO FILL IN THIS COMMENT * @return/*from w w w. ja v a 2s . c o m*/ */ public CrashSummary getErrorPie(String appID, CrashSummary.MetricType metricType, int duration, Pie.GroupBy groupBy) { String params = "{ \"params\": " + "{\"duration\": " + duration + "," + " \"graph\": \"" + metricType.toString() + "\"," + " \"appId\": \"" + appID + "\"" + ",\"groupBy\": \"" + groupBy.toString() + "\"}" + "}"; CrashSummary crashSummary = null; try { HttpsURLConnection conn = sendPostRequest(API_ERROR_PIE, params); JsonFactory jsonFactory = new JsonFactory(); JsonParser jp = jsonFactory.createParser(conn.getInputStream()); ObjectMapper mapper = getObjectMapper(); TreeNode node = mapper.readTree(jp); crashSummary = mapper.treeToValue(node.get("data"), CrashSummary.class); if (crashSummary != null) { crashSummary.setParams(appID, metricType, duration); } } catch (IOException ioex) { ioex.printStackTrace(); } return crashSummary; }
From source file:com.apteligent.ApteligentJavaClient.java
/** * @param appID appId (string, optional): The app to retrieve data about, * @param metricType The metric to retrieve * @param duration can only be 1440 (24 hours) or 43200 (1 month) * @param groupBy TODO FILL IN THIS COMMENT * @return/* w w w .j ava 2s.c o m*/ */ public CrashSummary getErrorSparklines(String appID, CrashSummary.MetricType metricType, int duration, Sparklines.GroupBy groupBy) { String params = "{ \"params\": " + "{\"duration\": " + duration + "," + " \"graph\": \"" + metricType.toString() + "\"," + " \"appId\": \"" + appID + "\"" + ",\"groupBy\": \"" + groupBy.toString() + "\"}" + "}"; CrashSummary crashSummary = null; try { HttpsURLConnection conn = sendPostRequest(API_ERROR_SPARKLINES, params); JsonFactory jsonFactory = new JsonFactory(); JsonParser jp = jsonFactory.createParser(conn.getInputStream()); ObjectMapper mapper = getObjectMapper(); TreeNode node = mapper.readTree(jp); crashSummary = mapper.treeToValue(node.get("data"), CrashSummary.class); if (crashSummary != null) { crashSummary.setParams(appID, metricType, duration); } } catch (IOException ioex) { ioex.printStackTrace(); } return crashSummary; }
From source file:com.apteligent.ApteligentJavaClient.java
/** * @param appID appId (string, optional): The app to retrieve data about, * @param metricType The metric to retrieve * @param duration can only be 1440 (24 hours) or 43200 (1 month) * @return Error object//from w ww.ja va2 s . c om */ public CrashSummary getErrorGraph(String appID, CrashSummary.MetricType metricType, int duration) { // { "params": {"duration": 43200, "graph": "crashes", "appId": "4f2cc6dfb09315234e000639"}} //String responseStr = "{\"data\": {\"start\": \"2014-11-13T00:00:00\", \"interval\": 86400, \"end\": \"2014-12-13T00:00:00\", \"series\": [{\"points\": [0, 3, 2, 0, 2, 3, 2, 3, 0, 6, 0, 0, 0, 1, 0, 0, 6, 2, 0, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0], \"name\": \"crashes\"}]}, \"params\": {\"duration\": 43200, \"graph\": \"crashes\", \"appId\": \"4f2cc6dfb09315234e000639\"}}"; String params = "{ \"params\": " + "{\"duration\": " + duration + "," + " \"graph\": \"" + metricType.toString() + "\"," + " \"appId\": \"" + appID + "\"}" + "}"; System.out.println(params); CrashSummary crashSummary = null; try { HttpsURLConnection conn = sendPostRequest(API_ERROR_GRAPH, params); JsonFactory jsonFactory = new JsonFactory(); JsonParser jp = jsonFactory.createParser(conn.getInputStream()); ObjectMapper mapper = getObjectMapper(); TreeNode node = mapper.readTree(jp); crashSummary = mapper.treeToValue(node.get("data"), CrashSummary.class); if (crashSummary != null) { crashSummary.setParams(appID, metricType, duration); } } catch (IOException ioex) { ioex.printStackTrace(); } return crashSummary; }
From source file:com.brainlounge.zooterrain.netty.WebSocketServerInboundHandler.java
private void handleWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) { // Check for closing frame if (frame instanceof CloseWebSocketFrame) { handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain()); return;//from w ww. j a v a 2s . com } if (frame instanceof PingWebSocketFrame) { ctx.channel().write(new PongWebSocketFrame(frame.content().retain())); return; } if (!(frame instanceof TextWebSocketFrame)) { throw new UnsupportedOperationException( String.format("%s frame types not supported", frame.getClass().getName())); } String request = ((TextWebSocketFrame) frame).text(); if (logger.isLoggable(Level.FINE)) { logger.fine(String.format("%s received %s", ctx.channel(), request)); } // expecting JSON, parse now TreeNode jsonRequest; ClientRequest.Type requestType; try { final JsonParser parser = jsonMapper.getFactory().createParser(request); jsonRequest = parser.readValueAsTree(); TextNode type = (TextNode) jsonRequest.get("r"); requestType = ClientRequest.Type.valueOf(type.textValue()); } catch (Exception e) { logger.info("parsing JSON failed for '" + request + "'"); // TODO return error to client return; } if (requestType == ClientRequest.Type.i) { // client requested initial data // sending connection string info final ControlMessage handshakeInfo = new ControlMessage(zkStateObserver.getZkConnection(), ControlMessage.Type.H); writeClientMessage(ctx, handshakeInfo); // sending initial znodes try { zkStateObserver.initialTree("/", 6, Sets.<ZkStateListener>newHashSet(new OutboundConnector(ctx))); } catch (InterruptedException e) { e.printStackTrace(); } } else if (requestType == ClientRequest.Type.b) { final String znode; try { znode = ((TextNode) jsonRequest.get("z")).textValue(); } catch (Exception e) { return; // TODO return error } final DataMessage dataMessage = zkStateObserver.retrieveNodeData(znode); if (dataMessage != null) { writeClientMessage(ctx, dataMessage); } } else { System.out.println("unknown, unhandled client request = " + request); } }
From source file:io.coala.json.DynaBean.java
/** * @param referenceType/*from ww w. j a v a 2s. c om*/ * @param <S> * @param <T> * @return */ static final <S, T> JsonDeserializer<T> createJsonDeserializer(final ObjectMapper om, final Class<T> resultType, final Properties... imports) { return new JsonDeserializer<T>() { @Override public T deserializeWithType(final JsonParser jp, final DeserializationContext ctxt, final TypeDeserializer typeDeserializer) throws IOException, JsonProcessingException { return deserialize(jp, ctxt); } @Override public T deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { if (jp.getCurrentToken() == JsonToken.VALUE_NULL) return null; // if( Wrapper.class.isAssignableFrom( resultType ) ) // { // // FIXME // LOG.trace( "deser wrapper intf of {}", jp.getText() ); // return (T) Wrapper.Util.valueOf( jp.getText(), // resultType.asSubclass( Wrapper.class ) ); // } if (Config.class.isAssignableFrom(resultType)) { final Map<String, Object> entries = jp.readValueAs(new TypeReference<Map<String, Object>>() { }); final Iterator<Entry<String, Object>> it = entries.entrySet().iterator(); for (Entry<String, Object> next = null; it.hasNext(); next = it.next()) if (next != null && next.getValue() == null) { LOG.trace("Ignoring null value: {}", next); it.remove(); } return resultType.cast(ConfigFactory.create(resultType.asSubclass(Config.class), entries)); } // else if (Config.class.isAssignableFrom(resultType)) // throw new JsonGenerationException( // "Config does not extend "+Mutable.class.getName()+" required for deserialization: " // + Arrays.asList(resultType // .getInterfaces())); // can't parse directly to interface type final DynaBean bean = new DynaBean(); final TreeNode tree = jp.readValueAsTree(); // override attributes as defined in interface getters final Set<String> attributes = new HashSet<>(); for (Method method : resultType.getMethods()) { if (method.getReturnType().equals(Void.TYPE) || method.getParameterTypes().length != 0) continue; final String attribute = method.getName(); if (attribute.equals("toString") || attribute.equals("hashCode")) continue; attributes.add(attribute); final TreeNode value = tree.get(attribute);// bean.any().get(attributeName); if (value == null) continue; bean.set(method.getName(), om.treeToValue(value, JsonUtil.checkRegistered(om, method.getReturnType(), imports))); } if (tree.isObject()) { // keep superfluous properties as TreeNodes, just in case final Iterator<String> fieldNames = tree.fieldNames(); while (fieldNames.hasNext()) { final String fieldName = fieldNames.next(); if (!attributes.contains(fieldName)) bean.set(fieldName, tree.get(fieldName)); } } else if (tree.isValueNode()) { for (Class<?> type : resultType.getInterfaces()) for (Method method : type.getDeclaredMethods()) { // LOG.trace( "Scanning {}", method ); if (method.isAnnotationPresent(JsonProperty.class)) { final String property = method.getAnnotation(JsonProperty.class).value(); // LOG.trace( "Setting {}: {}", property, // ((ValueNode) tree).textValue() ); bean.set(property, ((ValueNode) tree).textValue()); } } } else throw ExceptionFactory.createUnchecked("Expected {} but parsed: {}", resultType, tree.getClass()); return DynaBean.proxyOf(om, resultType, bean, imports); } }; }
From source file:org.springframework.social.weibo.api.impl.json.TrendsDeserializer.java
@Override public SortedSet<Trends> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { SimpleDateFormat dateFormat = new SimpleDateFormat(); TreeSet<Trends> result = new TreeSet<Trends>(comparator); TreeNode treeNode = jp.readValueAsTree(); Iterator<String> fieldNames = treeNode.fieldNames(); while (fieldNames.hasNext()) { Trends trends = new Trends(); try {//w w w.j a v a2 s .c o m String filedName = fieldNames.next(); dateFormat.applyPattern(retrieveDateFormatPattern(filedName)); trends.setDate(dateFormat.parse(filedName)); TreeNode trendsNode = treeNode.get(filedName); if (trendsNode.isArray()) { for (int i = 0; i < trendsNode.size(); i++) { JsonParser nodeParser = trendsNode.get(i).traverse(); nodeParser.setCodec(jp.getCodec()); Trend readValueAs = nodeParser.readValueAs(Trend.class); trends.getTrends().add(readValueAs); } } result.add(trends); } catch (ParseException e) { logger.warn("Unable to parse date", e); } } return result; }