@Override public <T extends TreeNode> T readValueAsTree() throws IOException { return delegate.readValueAsTree(); }
@Nullable @Override public T deserialize(@Nullable JsonParser jp, @Nullable DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonNode node = jp.readValueAsTree(); JsonNode coordinates = node.get("coordinates"); if (coordinates != null && coordinates.isArray()) { return doDeserialize((ArrayNode) coordinates); } return null; }
@Override public YoBitOrderBooksReturn deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { JsonNode node = p.readValueAsTree(); Map<String, YoBitOrderBook> tickers = new HashMap<>(); if (node.isObject()) { Iterator<Map.Entry<String, JsonNode>> priceEntryIter = node.fields(); while (priceEntryIter.hasNext()) { Map.Entry<String, JsonNode> priceEntryNode = priceEntryIter.next(); JsonNode jsonNode = priceEntryNode.getValue(); ObjectReader jsonObjectReader = new ObjectMapper().readerFor(YoBitOrderBook.class); YoBitOrderBook orderBook = jsonObjectReader.readValue(jsonNode); String ccy = priceEntryNode.getKey(); tickers.put(ccy, orderBook); } } return new YoBitOrderBooksReturn(tickers); } }
@Override public YoBitTickersReturn deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { JsonNode node = p.readValueAsTree(); Map<String, YoBitTicker> tickers = new HashMap<>(); if (node.isObject()) { Iterator<Map.Entry<String, JsonNode>> priceEntryIter = node.fields(); while (priceEntryIter.hasNext()) { Map.Entry<String, JsonNode> priceEntryNode = priceEntryIter.next(); JsonNode jsonNode = priceEntryNode.getValue(); ObjectReader jsonObjectReader = new ObjectMapper().readerFor(YoBitTicker.class); YoBitTicker ticker = jsonObjectReader.readValue(jsonNode); String ccy = priceEntryNode.getKey(); tickers.put(ccy, ticker); } } return new YoBitTickersReturn(tickers); } }
@Override public JSONOptions deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonLocation l = jp.getTokenLocation(); // logger.debug("Reading tree."); TreeNode n = jp.readValueAsTree(); // logger.debug("Tree {}", n); if (n instanceof JsonNode) { return new JSONOptions( (JsonNode) n, l); } else { throw new IllegalArgumentException(String.format("Received something other than a JsonNode %s", n)); } }
@Override public KucoinActiveOrder deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonNode root = p.readValueAsTree(); if (root.isArray()) { Date timestamp = new Date(root.get(0).asLong()); KucoinOrderType orderType = KucoinOrderType.valueOf(root.get(1).asText()); BigDecimal price = root.get(2).decimalValue(); BigDecimal amount = root.get(3).decimalValue(); BigDecimal dealAmount = root.get(4).decimalValue(); // amount already filled String orderOid = root.get(5).textValue(); return new KucoinActiveOrder(timestamp, orderType, price, amount, dealAmount, orderOid); } else { throw new RuntimeException("KucoinDealOrder should have an array as root node!"); } } }
@Override public KucoinDealOrder deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonNode root = p.readValueAsTree(); if (root.isArray()) { Long timestamp = root.get(0).asLong(); KucoinOrderType orderType = KucoinOrderType.valueOf(root.get(1).asText()); BigDecimal price = root.get(2).decimalValue(); BigDecimal amount = root.get(3).decimalValue(); BigDecimal volume = root.get(4).decimalValue(); return new KucoinDealOrder(timestamp, orderType, price, amount, volume); } else { throw new RuntimeException("KucoinDealOrder should have an array as root node!"); } } }
public TweetBench() { try { MappingJsonFactory jf = new MappingJsonFactory(); InputStream json = TweetBench.class.getClassLoader().getResourceAsStream("tweet.json"); new ArrayList<>(singletonList(new JsonMap(jf.createParser(json).readValueAsTree()))); } catch (IOException e) { throw new RuntimeException(e); } }
@Override public TestObject deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { JsonNode node = p.readValueAsTree(); TestObject result = new TestObject(); result.setTest(node.get("test").asInt()); return result; } }
@Override public RedisStateMap deserialize(final byte[] data) throws IOException { if (data == null || data.length == 0) { return null; } final RedisStateMap.Builder builder = new RedisStateMap.Builder(); try (final JsonParser jsonParser = jsonFactory.createParser(data)) { final JsonNode rootNode = jsonParser.readValueAsTree(); builder.version(rootNode.get(FIELD_VERSION).asLong()); builder.encodingVersion(rootNode.get(FIELD_ENCODING).asInt()); final JsonNode stateValuesNode = rootNode.get(FIELD_STATE_VALUES); stateValuesNode.fields().forEachRemaining(e -> builder.stateValue(e.getKey(), e.getValue().asText())); } return builder.build(); }
throws IOException { JsonNode node = p.readValueAsTree(); Map<String, BithumbTicker> tickers = new HashMap<>();
@Override public Registration deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { JsonNode node = p.readValueAsTree(); Registration.Builder builder = Registration.builder();
@Override public JobParameter deserialize(JsonParser parser, DeserializationContext context) throws IOException { JsonNode node = parser.readValueAsTree(); boolean identifying = node.get(IDENTIFYING_KEY_NAME).asBoolean(); String type = node.get(TYPE_KEY_NAME).asText(); JsonNode value = node.get(VALUE_KEY_NAME); Object parameterValue; switch (JobParameter.ParameterType.valueOf(type)) { case STRING: { parameterValue = value.asText(); return new JobParameter((String) parameterValue, identifying); } case DATE: { parameterValue = new Date(value.get(1).asLong()); return new JobParameter((Date) parameterValue, identifying); } case LONG: { parameterValue = value.get(1).asLong(); return new JobParameter((Long) parameterValue, identifying); } case DOUBLE: { parameterValue = value.asDouble(); return new JobParameter((Double) parameterValue, identifying); } } return null; } }
arrayElement = parser.readValueAsTree().toString();
private String removeNode(String json, ObjectMapper mapper, String toRemove) throws Exception { ObjectNode node = mapper.getFactory().createParser(json).readValueAsTree(); node.remove(toRemove); String result = mapper.writeValueAsString(node); JSONAssert.assertNotEquals(json, result, false); return result; }
@Override public PathDetail deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode pathDetail = jp.readValueAsTree(); if (pathDetail.size() != 3) throw new JsonParseException(jp, "PathDetail array must have exactly 3 entries but was " + pathDetail.size()); JsonNode from = pathDetail.get(0); JsonNode to = pathDetail.get(1); JsonNode val = pathDetail.get(2); PathDetail pd; if (val.isBoolean()) pd = new PathDetail(val.asBoolean()); else if (val.isLong()) pd = new PathDetail(val.asLong()); else if (val.isInt()) pd = new PathDetail(val.asInt()); else if (val.isDouble()) pd = new PathDetail(val.asDouble()); else if (val.isTextual()) pd = new PathDetail(val.asText()); else throw new JsonParseException(jp, "Unsupported type of PathDetail value " + pathDetail.getNodeType().name()); pd.setFirst(from.asInt()); pd.setLast(to.asInt()); return pd; } }
protected Object getScope() throws IOException { MappingJsonFactory jf = new MappingJsonFactory(); InputStream json = getClass().getClassLoader().getResourceAsStream("hogan.json"); final Map node = (Map) toObject(jf.createJsonParser(json).readValueAsTree()); System.out.println(node); return new Object() { int uid = 0; List tweets = new ArrayList() {{ for (int i = 0; i < 50; i++) { add(node); } }}; }; }
protected Object _deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { final TreeNode treeNode = p.readValueAsTree(); final TreeNode typeNode = treeNode.path("type"); if (!typeNode.isObject()) { ctxt.reportWrongTokenException(typeNode.traverse(), JsonToken.START_OBJECT, "expected START_OBJECT before the type information and deserialized value"); } final TreeNode valueNode = typeNode.path("@value"); if (!valueNode.isValueNode()) { ctxt.reportWrongTokenException(typeNode.traverse(), JsonToken.VALUE_STRING, "expected VALUE_STRING as type information and deserialized value"); } final JsonParser jsonParser = valueNode.traverse(); final String typeId = jsonParser.nextTextValue(); final JsonDeserializer<Object> deser = _findDeserializer(ctxt, typeId); final JsonParser newParser = treeNode.traverse(); if (newParser.nextToken() != JsonToken.START_OBJECT) { ctxt.reportWrongTokenException(newParser, JsonToken.START_OBJECT, "expected START_OBJECT"); } return deser.deserialize(newParser, ctxt); } }
public void testComplex() throws MustacheException, IOException { StringWriter json = new StringWriter(); MappingJsonFactory jf = new MappingJsonFactory(); final JsonGenerator jg = jf.createJsonGenerator(json); jg.writeStartObject(); final JsonCapturer captured = new JsonCapturer(jg); MustacheFactory c = new DefaultMustacheFactory(root) { @Override public MustacheVisitor createMustacheVisitor() { return new CapturingMustacheVisitor(this, captured); } }; Mustache m = c.compile("complex.html"); StringWriter sw = new StringWriter(); m.execute(sw, new ComplexObject()); jg.writeEndObject(); jg.flush(); assertEquals(getContents(root, "complex.txt"), sw.toString()); JsonNode jsonNode = jf.createJsonParser(json.toString()).readValueAsTree(); Object o = JsonInterpreterTest.toObject(jsonNode); sw = new StringWriter(); m = createMustacheFactory().compile("complex.html"); m.execute(sw, o); assertEquals(getContents(root, "complex.txt"), sw.toString()); }
case StandardTypes.JSON: return (parser, blockBuilder) -> { String json = OBJECT_MAPPED_UNORDERED.writeValueAsString(parser.readValueAsTree()); JSON.writeSlice(blockBuilder, Slices.utf8Slice(json)); };