com.fasterxml.jackson.databind.node.ArrayNode#addArray ( )源码实例Demo

下面列出了com.fasterxml.jackson.databind.node.ArrayNode#addArray ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: azure-cosmosdb-java   文件: JsonSerializable.java
@SuppressWarnings({"unchecked", "rawtypes"})
private <T> void internalSetCollection(String propertyName, Collection<T> collection, ArrayNode targetArray) {
    for (T childValue : collection) {
        if (childValue == null) {
            // Sets null.
            targetArray.addNull();
        } else if (childValue instanceof Collection) {
            // When T is also a Collection, use recursion.
            ArrayNode childArray = targetArray.addArray();
            this.internalSetCollection(propertyName, (Collection) childValue, childArray);
        } else if (childValue instanceof JsonNode) {
            targetArray.add((JsonNode) childValue);
        } else if (childValue instanceof JsonSerializable) {
            // JsonSerializable
            JsonSerializable castedValue = (JsonSerializable) childValue;
            castedValue.populatePropertyBag();
            targetArray.add(castedValue.propertyBag != null ? castedValue.propertyBag : this.getMapper().createObjectNode());
        } else {
            // POJO, JSONObject, Number (includes Int, Float, Double etc),
            // Boolean, and String.
            targetArray.add(this.getMapper().valueToTree(childValue));
        }
    }
}
 
源代码2 项目: constellation   文件: GetGraphValues.java
@Override
public void callService(final PluginParameters parameters, InputStream in, OutputStream out) throws IOException {
    final String graphId = parameters.getStringValue(GRAPH_ID_PARAMETER_ID);

    final Graph graph = graphId == null ? RestUtilities.getActiveGraph() : GraphNode.getGraph(graphId);
    final ObjectMapper mapper = new ObjectMapper();
    final ObjectNode root = mapper.createObjectNode();
    final ArrayNode columns = root.putArray("columns");
    final ArrayNode data = root.putArray("data");
    final ArrayNode row = data.addArray();
    final ReadableGraph rg = graph.getReadableGraph();
    try {
        final int gCount = rg.getAttributeCount(GraphElementType.GRAPH);
        for (int i = 0; i < gCount; i++) {
            final int attrId = rg.getAttribute(GraphElementType.GRAPH, i);
            final String type = rg.getAttributeType(attrId);
            final String label = rg.getAttributeName(attrId);
            String value = rg.getStringValue(attrId, 0);

            columns.add(String.format("%s|%s", label, type));
            RestUtilities.addData(row, type, value);
        }
    } finally {
        rg.release();
    }

    mapper.writeValue(out, root);
}
 
源代码3 项目: sailfish-core   文件: CopyingFormat.java
private static JsonNode getOrCreateNode(JsonNode node, String key, boolean getObjectNode){
    if (node instanceof  ObjectNode) {
        ObjectNode obj = (ObjectNode) node;
        return obj.has(key) ? obj.get(key) : getObjectNode ? obj.putObject(key) : obj.putArray(key);
    } else if (node instanceof ArrayNode) {
        ArrayNode arrayNode = (ArrayNode) node;
        return getObjectNode ? arrayNode.addObject() : arrayNode.addArray();
    }

    return null;
}
 
源代码4 项目: arctic-sea   文件: ObservationEncoder.java
private JsonNode encodeSweDataArrayValue(Value<?> value)
        throws EncodingException {
    SweDataArrayValue sweDataArrayValue = (SweDataArrayValue) value;
    ObjectNode result = nodeFactory().objectNode();
    ArrayNode jfields = result.putArray(JSONConstants.FIELDS);
    ArrayNode jvalues = result.putArray(JSONConstants.VALUES);
    List<SweField> fields = ((SweDataRecord) sweDataArrayValue.getValue().getElementType()).getFields();
    List<List<String>> values = sweDataArrayValue.getValue().getValues();
    TokenConverter[] conv = new TokenConverter[fields.size()];
    int i = 0;
    for (SweField field : fields) {
        try {
            conv[i++] = TokenConverter.forField(field);
        } catch (IllegalArgumentException e) {
            throw new UnsupportedEncoderInputException(this, field);
        }
        jfields.add(encodeObjectToJson(field));
    }

    for (List<String> block : values) {
        ArrayNode jblock = jvalues.addArray();
        i = 0;
        for (String token : block) {
            jblock.add(conv[i++].convert(token));
        }
    }
    return result;
}
 
源代码5 项目: constellation   文件: RestUtilities.java
/**
 * Add a value to a column.
 *
 * @param row The JSON array representing the column.
 * @param type The type of the value.
 * @param value The (possibly null) value.
 */
public static void addData(final ArrayNode row, final String type, final String value) {
    switch (type) {
        case BooleanAttributeDescription.ATTRIBUTE_NAME:
        case BooleanObjectAttributeDescription.ATTRIBUTE_NAME:
            // A DataFrame will parse [True, False, None] to [1.0, 0.0, Nan],
            // so implicitly convert null to False so the result is all booleans.
            row.add(Boolean.parseBoolean(value));
            break;
        case ColorAttributeDescription.ATTRIBUTE_NAME:
            if (value == null) {
                row.addNull();
            } else {
                final ArrayNode rgb = row.addArray();
                final ConstellationColor cv = ConstellationColor.getColorValue(value);
                rgb.add(cv.getRed());
                rgb.add(cv.getGreen());
                rgb.add(cv.getBlue());
                rgb.add(cv.getAlpha());
            }
            break;
        case ZonedDateTimeAttributeDescription.ATTRIBUTE_NAME:
            // A DataFrame will parse null as NaT.
            if (value == null) {
                row.addNull();
            } else {
                // Remove the trailing tz name if present.
                final int ix = value.lastIndexOf(" [");
                row.add(ix == -1 ? value : value.substring(0, ix));
            }
            break;
        case FloatAttributeDescription.ATTRIBUTE_NAME:
        case FloatObjectAttributeDescription.ATTRIBUTE_NAME:
            // A DataFrame will parse null as NaN.
            if (value == null) {
                row.addNull();
            } else {
                row.add(Float.parseFloat(value));
            }
            break;
        case IntegerAttributeDescription.ATTRIBUTE_NAME:
        case IntegerObjectAttributeDescription.ATTRIBUTE_NAME:
            // A DataFrame will parse null as NaN, but the column will be
            // converted to a float column.
            if (value == null) {
                row.addNull();
            } else {
                row.add(Integer.parseInt(value));
            }
            break;
        default:
            // Everything else we leave as a string; nulls are fine.
            row.add(value);
            break;
    }
}
 
源代码6 项目: onos   文件: IntentsWebResource.java
/**
 * Gets all related flow entries created by a particular intent.
 * Returns all flow entries of the specified intent.
 *
 * @param appId application identifier
 * @param key   intent key
 * @return 200 OK with intent data
 * @onos.rsModel Relatedflows
 */
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("relatedflows/{appId}/{key}")
public Response getIntentFlowsById(@PathParam("appId") String appId,
                                   @PathParam("key") String key) {
    ApplicationId applicationId = get(CoreService.class).getAppId(appId);
    nullIsNotFound(applicationId, APP_ID_NOT_FOUND);
    IntentService intentService = get(IntentService.class);
    FlowRuleService flowService = get(FlowRuleService.class);

    Intent intent = intentService.getIntent(Key.of(key, applicationId));
    if (intent == null) {
        long numericalKey = Long.decode(key);
        intent = intentService.getIntent(
                Key.of(numericalKey, applicationId));
    }
    nullIsNotFound(intent, INTENT_NOT_FOUND);

    ObjectNode root = mapper().createObjectNode();
    root.put(APP_ID, appId);
    root.put(ID, key);

    IntentFilter intentFilter = new IntentFilter(intentService, flowService);

    List<Intent> installables =
            intentService.getInstallableIntents(intent.key());

    if (intent instanceof HostToHostIntent) {
        root.put(INTENT_TYPE, HOST_TO_HOST_INTENT);
    } else if (intent instanceof PointToPointIntent) {
        root.put(INTENT_TYPE, POINT_TO_POINT_INTENT);
    } else if (intent instanceof SinglePointToMultiPointIntent) {
        root.put(INTENT_TYPE, SINGLE_TO_MULTI_POINT_INTENT);
    } else if (intent instanceof MultiPointToSinglePointIntent) {
        root.put(INTENT_TYPE, MULTI_TO_SINGLE_POINT_INTENT);
    } else {
        root.put(INTENT_TYPE, INTENT);
    }

    ArrayNode pathsNode = root.putArray(INTENT_PATHS);

    for (List<FlowEntry> flowEntries :
            intentFilter.readIntentFlows(installables)) {
        ArrayNode flowNode = pathsNode.addArray();

        for (FlowEntry entry : flowEntries) {
            flowNode.add(codec(FlowEntry.class).encode(entry, this));
        }
    }
    return ok(root).build();
}