/** * Constructor * * @param flattenSpec Provide a path spec for flattening and field discovery. * @param mapper Optionally provide an ObjectMapper, used by the parser for reading the input JSON. */ public JSONPathParser(JSONPathSpec flattenSpec, ObjectMapper mapper) { this.mapper = mapper == null ? new ObjectMapper() : mapper; this.flattener = ObjectFlatteners.create(flattenSpec, new JSONFlattenerMaker()); }
return charsetFix(val.asText()); for (JsonNode entry : val) { if (!entry.isNull()) { newList.add(valueConversionFunction(entry)); for (Iterator<Map.Entry<String, JsonNode>> it = val.fields(); it.hasNext(); ) { Map.Entry<String, JsonNode> entry = it.next(); newMap.put(entry.getKey(), valueConversionFunction(entry.getValue()));
@Override public Iterable<String> discoverRootFields(final JsonNode obj) { return FluentIterable.from(() -> obj.fields()) .filter( entry -> { final JsonNode val = entry.getValue(); return !(val.isObject() || val.isNull() || (val.isArray() && !isFlatList(val))); } ) .transform(Map.Entry::getKey); }
@Override public Object getRootField(final JsonNode obj, final String key) { return valueConversionFunction(obj.get(key)); }
@Override public Function<JsonNode, Object> makeJsonQueryExtractor(final String expr) { try { final JsonQuery jsonQuery = JsonQuery.compile(expr); return jsonNode -> { try { return valueConversionFunction(jsonQuery.apply(jsonNode).get(0)); } catch (JsonQueryException e) { throw new RuntimeException(e); } }; } catch (JsonQueryException e) { throw new RuntimeException(e); } }
return charsetFix(val.asText()); List<Object> newList = new ArrayList<>(); for (JsonNode entry : val) { newList.add(valueConversionFunction(entry)); for (Iterator<Map.Entry<String, JsonNode>> it = val.fields(); it.hasNext(); ) { Map.Entry<String, JsonNode> entry = it.next(); newMap.put(entry.getKey(), valueConversionFunction(entry.getValue()));
@Override public Function<JsonNode, Object> makeJsonPathExtractor(final String expr) { final JsonPath jsonPath = JsonPath.compile(expr); return node -> valueConversionFunction(jsonPath.read(node, JSONPATH_CONFIGURATION)); }
/** * Constructor * * @param flattenSpec Provide a path spec for flattening and field discovery. * @param mapper Optionally provide an ObjectMapper, used by the parser for reading the input JSON. */ public JSONPathParser(JSONPathSpec flattenSpec, ObjectMapper mapper) { this.mapper = mapper == null ? new ObjectMapper() : mapper; this.flattener = ObjectFlatteners.create(flattenSpec, new JSONFlattenerMaker()); }
@Override public Iterable<String> discoverRootFields(final JsonNode obj) { return FluentIterable.from(() -> obj.fields()) .filter( entry -> { final JsonNode val = entry.getValue(); return !(val.isObject() || val.isNull() || (val.isArray() && !isFlatList(val))); } ) .transform(Map.Entry::getKey); }
@Override public Object getRootField(final JsonNode obj, final String key) { return valueConversionFunction(obj.get(key)); }
@Override public Function<JsonNode, Object> makeJsonQueryExtractor(final String expr) { try { final JsonQuery jsonQuery = JsonQuery.compile(expr); return jsonNode -> { try { return valueConversionFunction(jsonQuery.apply(jsonNode).get(0)); } catch (JsonQueryException e) { throw new RuntimeException(e); } }; } catch (JsonQueryException e) { throw new RuntimeException(e); } }
@Override public Function<JsonNode, Object> makeJsonPathExtractor(final String expr) { final JsonPath jsonPath = JsonPath.compile(expr); return node -> valueConversionFunction(jsonPath.read(node, JSONPATH_CONFIGURATION)); }