Refine search
private static Map<String, JsonNode> groupArrayElementsByKey(ArrayNode fields, String key) { Map<String, JsonNode> fieldsMap = new HashMap<String, JsonNode>(); for (int i = 0; i < fields.size(); i++) { JsonNode field = fields.get(i); fieldsMap.put(field.get(key).asText(), field); } return fieldsMap; }
private static void mergeJsonArray(ArrayNode src, ArrayNode other) { for (int i = 0; i < other.size(); i++) { JsonNode s = src.get(i); JsonNode v = other.get(i); if (s == null) { src.add(v); } else if (v.isObject() && s.isObject()) { mergeJsonObject((ObjectNode) s, (ObjectNode) v); } else if (v.isArray() && s.isArray()) { mergeJsonArray((ArrayNode) s, (ArrayNode) v); } else { src.remove(i); src.insert(i, v); } } }
public void empty_array_check_works() throws IOException { String json = "[" + " {" + " \"name\": \"a\"," + " \"groups\": [{" + " \"type\": \"phase\"," + " \"name\": \"alpha\"" + " }, {" + " \"type\": \"not_phase\"," + " \"name\": \"beta\"" + " }]" + " }, {" + " \"name\": \"b\"," + " \"groups\": [{" + " \"type\": \"phase\"," + " \"name\": \"beta\"" + " }, {" + " \"type\": \"not_phase\"," + " \"name\": \"alpha\"" + " }]" + " }" + "]"; ArrayNode node = using(JACKSON_JSON_NODE_CONFIGURATION).parse(json).read("$[?(@.groups[?(@.type == 'phase' && @.name == 'alpha')] empty false)]"); assertThat(node.size()).isEqualTo(1); assertThat(node.get(0).get("name").asText()).isEqualTo("a"); }
private void fillPoints( ShapeFactory.PointsBuilder b, ArrayNode arrs ) { for(int i=0; i<arrs.size(); i++) { ArrayNode arr = (ArrayNode)arrs.get(i); double x = arr.get(0).asDouble(); double y = arr.get(1).asDouble(); if(arr.size()==3) { double z = arr.get(3).asDouble(); b.pointXYZ(x, y, z); } else { b.pointXY(x, y); } } }
private void processMultiRequest(ArrayNode requests, String jsonToken, String oAuthCode, HttpServletRequest httpRequest, JsonGenerator out) throws Exception { out.writeFieldName("responses"); out.writeStartArray(); for (int r = 0; r < requests.size(); r++) { try { processSingleRequest((ObjectNode) requests.get(r), jsonToken, oAuthCode, httpRequest, out); } catch (Exception e) { handleThrowable(out, e); } } out.writeEndArray(); }
/** * Handles the given {@link ArrayNode} and writes the * responses to the given {@link OutputStream}. * * @param node the {@link JsonNode} * @param output the {@link OutputStream} * @return the error code, or {@code 0} if none * @throws IOException on error */ private JsonError handleArray(ArrayNode node, OutputStream output) throws IOException { logger.debug("Handling {} requests", node.size()); JsonError result = JsonError.OK; output.write('['); int errorCount = 0; for (int i = 0; i < node.size(); i++) { JsonError nodeResult = handleJsonNodeRequest(node.get(i), output); if (isError(nodeResult)) { result = JsonError.BULK_ERROR; errorCount += 1; } if (i != node.size() - 1) { output.write(','); } } output.write(']'); logger.debug("served {} requests, error {}, result {}", node.size(), errorCount, result); // noinspection unchecked return result; }
private void fillPolygon(ShapeFactory.PolygonBuilder b, ArrayNode arr ) { ArrayNode coords = (ArrayNode)arr.get(0); for(int i=0; i<coords.size(); i++) { ArrayNode n = (ArrayNode)coords.get(i); double x = n.get(0).asDouble(); double y = n.get(1).asDouble(); if(n.size()==3) { double z = n.get(2).asDouble(); b.pointXYZ(x, y, z); for(int h=1; h<arr.size(); h++) { ShapeFactory.PolygonBuilder.HoleBuilder hole = b.hole(); coords = (ArrayNode)arr.get(h); for(int i=0; i<coords.size(); i++) { ArrayNode n = (ArrayNode)coords.get(i); double x = n.get(0).asDouble(); double y = n.get(1).asDouble(); if(n.size()==3) { double z = n.get(2).asDouble(); hole.pointXYZ(x, y, z);
for(int i=0; i<arr.size(); i++) { b.add( read((ObjectNode)arr.get(i), factory ) ); for(int i=0; i<arr.size(); i++) { ShapeFactory.LineStringBuilder b = builder.lineString(); fillPoints(b, (ArrayNode)arr.get(i)); b.buffer(buffer); builder.add(b); for(int i=0; i<arr.size(); i++) { ShapeFactory.PolygonBuilder b = buildier.polygon(); fillPolygon(b, (ArrayNode)arr.get(i)); buildier.add(b);
if (typesNode instanceof ArrayNode) { ArrayNode types = (ArrayNode)typesNode; if (types.size() == 0) { throw new QueryException("\"types\" must have a least one element"); for (int i=0; i<types.size(); i++) { JsonNode typeNode = types.get(i); parseTypeNode(include, i, typeNode); if (typesNode instanceof ArrayNode) { ArrayNode types = (ArrayNode)typesNode; if (types.size() == 0) { throw new QueryException("\"outputTypes\" must have a least one element"); for (int i=0; i<types.size(); i++) { JsonNode typeNode = types.get(i); if (typeNode.isTextual()) { EClass eClass = packageMetaData.getEClass(typeNode.asText()); if (fieldsNode instanceof ArrayNode) { ArrayNode fields = (ArrayNode)fieldsNode; for (int i=0; i<fields.size(); i++) { JsonNode fieldNode = fields.get(i); if (fieldNode.isTextual()) { include.addField(fieldNode.asText()); if (fieldsNode instanceof ArrayNode) { ArrayNode fields = (ArrayNode)fieldsNode; for (int i=0; i<fields.size(); i++) {
if (typesNode instanceof ArrayNode) { ArrayNode types = (ArrayNode)typesNode; for (int i=0; i<types.size(); i++) { JsonNode typeNode = types.get(i); parseTypeNode(queryPart, i, typeNode); if (oidsNode instanceof ArrayNode) { ArrayNode oids = (ArrayNode)oidsNode; for (int i=0; i<oids.size(); i++) { JsonNode oidNode = oids.get(i); if (oidNode.isNumber()) { queryPart.addOid(oidNode.asLong()); if (guidsNode instanceof ArrayNode) { ArrayNode guids = (ArrayNode)guidsNode; for (int i=0; i<guids.size(); i++) { JsonNode guidNode = guids.get(i); if (guidNode.isTextual()) { queryPart.addGuid(guidNode.asText()); if (namesNode instanceof ArrayNode) { ArrayNode names = (ArrayNode)namesNode; for (int i=0; i<names.size(); i++) { if (classificationsNode instanceof ArrayNode) { ArrayNode arrayNode = (ArrayNode)classificationsNode; for (int i=0; i<arrayNode.size(); i++) { if (includesNode instanceof ArrayNode) {