Search in sources :

Example 26 with JsonParser

use of com.fasterxml.jackson.core.JsonParser in project blueprints by tinkerpop.

the class GraphSONReader method inputGraph.

/**
     * Input the JSON stream data into the graph.
     * More control over how data is streamed is provided by this method.
     *
     * @param inputGraph      the graph to populate with the JSON data
     * @param jsonInputStream an InputStream of JSON data
     * @param bufferSize      the amount of elements to hold in memory before committing a transactions (only valid for TransactionalGraphs)
     * @throws IOException thrown when the JSON data is not correctly formatted
     */
public static void inputGraph(final Graph inputGraph, final InputStream jsonInputStream, int bufferSize, final Set<String> edgePropertyKeys, final Set<String> vertexPropertyKeys) throws IOException {
    if (jsonInputStream == null) {
        throw new IllegalArgumentException("InputStream must not be null");
    }
    final JsonParser jp = jsonFactory.createJsonParser(jsonInputStream);
    // if this is a transactional graph then we're buffering
    final BatchGraph graph = BatchGraph.wrap(inputGraph, bufferSize);
    final ElementFactory elementFactory = new GraphElementFactory(graph);
    GraphSONUtility graphson = new GraphSONUtility(GraphSONMode.NORMAL, elementFactory, vertexPropertyKeys, edgePropertyKeys);
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        final String fieldname = jp.getCurrentName() == null ? "" : jp.getCurrentName();
        if (fieldname.equals(GraphSONTokens.MODE)) {
            jp.nextToken();
            final GraphSONMode mode = GraphSONMode.valueOf(jp.getText());
            graphson = new GraphSONUtility(mode, elementFactory, vertexPropertyKeys, edgePropertyKeys);
        } else if (fieldname.equals(GraphSONTokens.VERTICES)) {
            jp.nextToken();
            while (jp.nextToken() != JsonToken.END_ARRAY) {
                final JsonNode node = jp.readValueAsTree();
                graphson.vertexFromJson(node);
            }
        } else if (fieldname.equals(GraphSONTokens.EDGES)) {
            jp.nextToken();
            while (jp.nextToken() != JsonToken.END_ARRAY) {
                final JsonNode node = jp.readValueAsTree();
                final Vertex inV = graph.getVertex(GraphSONUtility.getTypedValueFromJsonNode(node.get(GraphSONTokens._IN_V)));
                final Vertex outV = graph.getVertex(GraphSONUtility.getTypedValueFromJsonNode(node.get(GraphSONTokens._OUT_V)));
                graphson.edgeFromJson(node, outV, inV);
            }
        }
    }
    jp.close();
    graph.commit();
    ;
}
Also used : BatchGraph(com.tinkerpop.blueprints.util.wrappers.batch.BatchGraph) Vertex(com.tinkerpop.blueprints.Vertex) JsonNode(com.fasterxml.jackson.databind.JsonNode) JsonParser(com.fasterxml.jackson.core.JsonParser)

Example 27 with JsonParser

use of com.fasterxml.jackson.core.JsonParser in project blueprints by tinkerpop.

the class GraphSONUtility method vertexFromJson.

/**
     * Creates a vertex from GraphSON using settings supplied in the constructor.
     */
public Vertex vertexFromJson(final String json) throws IOException {
    final JsonParser jp = jsonFactory.createParser(json);
    final JsonNode node = jp.readValueAsTree();
    return this.vertexFromJson(node);
}
Also used : JsonNode(com.fasterxml.jackson.databind.JsonNode) JsonParser(com.fasterxml.jackson.core.JsonParser)

Example 28 with JsonParser

use of com.fasterxml.jackson.core.JsonParser in project LoganSquare by bluelinelabs.

the class JsonMapper method parseMap.

/**
     * Parse a map of objects from a byte array. Note: parsing from an InputStream should be preferred over parsing from a byte array if possible.
     *
     * @param byteArray The byte array string being parsed.
     */
public Map<String, T> parseMap(byte[] byteArray) throws IOException {
    JsonParser jsonParser = LoganSquare.JSON_FACTORY.createParser(byteArray);
    jsonParser.nextToken();
    return parseMap(jsonParser);
}
Also used : JsonParser(com.fasterxml.jackson.core.JsonParser)

Example 29 with JsonParser

use of com.fasterxml.jackson.core.JsonParser in project LoganSquare by bluelinelabs.

the class JsonMapper method parse.

/**
     * Parse an object from a byte array. Note: parsing from an InputStream should be preferred over parsing from a byte array if possible.
     *
     * @param byteArray The byte array being parsed.
     */
public T parse(byte[] byteArray) throws IOException {
    JsonParser jsonParser = LoganSquare.JSON_FACTORY.createParser(byteArray);
    jsonParser.nextToken();
    return parse(jsonParser);
}
Also used : JsonParser(com.fasterxml.jackson.core.JsonParser)

Example 30 with JsonParser

use of com.fasterxml.jackson.core.JsonParser in project LoganSquare by bluelinelabs.

the class JsonMapper method parseMap.

/**
     * Parse a map of objects from an InputStream.
     *
     * @param is The inputStream, most likely from your networking library.
     */
public Map<String, T> parseMap(InputStream is) throws IOException {
    JsonParser jsonParser = LoganSquare.JSON_FACTORY.createParser(is);
    jsonParser.nextToken();
    return parseMap(jsonParser);
}
Also used : JsonParser(com.fasterxml.jackson.core.JsonParser)

Aggregations

JsonParser (com.fasterxml.jackson.core.JsonParser)137 IOException (java.io.IOException)37 Test (org.junit.Test)35 JsonFactory (com.fasterxml.jackson.core.JsonFactory)24 StringWriter (java.io.StringWriter)17 ExtensibleJSONWriter (com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter)15 JsonNode (com.fasterxml.jackson.databind.JsonNode)14 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)13 JsonUtil.createJsonParser (com.facebook.presto.util.JsonUtil.createJsonParser)12 SqlNullable (com.facebook.presto.spi.function.SqlNullable)11 SqlType (com.facebook.presto.spi.function.SqlType)11 BaseTest (com.fasterxml.jackson.core.BaseTest)11 JsonToken (com.fasterxml.jackson.core.JsonToken)11 UTF8DataInputJsonParser (com.fasterxml.jackson.core.json.UTF8DataInputJsonParser)11 JsonGenerator (com.fasterxml.jackson.core.JsonGenerator)10 JsonParseException (com.fasterxml.jackson.core.JsonParseException)8 SimpleParseUUT (com.instagram.common.json.annotation.processor.uut.SimpleParseUUT)7 PrestoException (com.facebook.presto.spi.PrestoException)6 ScalarFunction (com.facebook.presto.spi.function.ScalarFunction)6 ScalarOperator (com.facebook.presto.spi.function.ScalarOperator)5