Example usage for com.google.gson.stream JsonReader beginObject

List of usage examples for com.google.gson.stream JsonReader beginObject

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader beginObject.

Prototype

public void beginObject() throws IOException 

Source Link

Document

Consumes the next token from the JSON stream and asserts that it is the beginning of a new object.

Usage

From source file:data.Task1bData.java

License:Apache License

private ArrayList<Snippet> readSnippets(JsonReader reader) {
    ArrayList<Snippet> snippets = new ArrayList<Snippet>();

    try {/*from  w ww  .j a v a  2s .  c  o  m*/
        reader.beginArray();
        while (reader.hasNext()) {

            reader.beginObject();
            String document = "", fnameBegin = "", fnameEnd = "", text = "";
            int beginIndex = 0;
            int endIndex = 0;

            while (reader.hasNext()) {
                String name = reader.nextName();
                if (name.equals("offsetInBeginSection")) {
                    beginIndex = reader.nextInt();
                } else if (name.equals("offsetInEndSection")) {
                    endIndex = reader.nextInt();
                } else if (name.equals("document")) {
                    document = reader.nextString();
                } else if (name.equals("beginSection")) {
                    fnameBegin = reader.nextString();
                    fnameBegin = fnameBegin.substring(fnameBegin.indexOf('.') + 1);
                } else if (name.equals("endSection")) {
                    fnameEnd = reader.nextString();
                    fnameEnd = fnameEnd.substring(fnameEnd.indexOf('.') + 1);
                } else if (name.equals("text")) {
                    text = reader.nextString();
                } else {
                    //System.out.println("Unknown field "+name +" in snippet");

                }
            }
            Snippet sn = new Snippet(document, text, fnameBegin, fnameEnd, beginIndex, endIndex);
            reader.endObject();
            snippets.add(sn);
        }
        reader.endArray();
    } catch (IOException ex) {
    }

    return snippets;
}

From source file:data.TaskADataParser.java

License:Apache License

/**
 * //from  w ww  .  j  a  va 2  s  .c  o m
 * Return a json reader and opens the array
 * 
 */
public static JsonReader streamParser(String jsonFile) throws IOException {

    int count = 0;
    int abstract_count = 0;
    int duplicates = 0;
    JsonReader reader = null;
    try {
        reader = new JsonReader(new InputStreamReader(new FileInputStream(jsonFile)));
        reader.setLenient(true);
        reader.beginObject();
        String nam = reader.nextName();
        System.out.println(nam);
        reader.beginArray();

    } catch (Exception ex) {
        System.out.println("File not found");
        System.out.println(ex.toString());
    }
    return reader;
}

From source file:data.TaskADataParser.java

License:Apache License

public static PubMedDocument getNextDocument(JsonReader reader) {
    String text = null;/*  w w  w  . ja  va 2  s  .  co  m*/
    String title = null;
    String pmid = null;
    String journal = null;
    String[] meshMajor = null;

    try {
        if (reader.hasNext()) {
            reader.beginObject();

            while (reader.hasNext()) {
                String name = reader.nextName();

                if (name.equals("abstractText")) {

                    text = reader.nextString();

                } else if (name.equals("journal")) {
                    journal = reader.nextString();

                } else if (name.equals("meshMajor")) {
                    meshMajor = readLabelsArray(reader);

                } else if (name.equals("pmid")) {
                    pmid = reader.nextString();
                } else if (name.equals("title")) {
                    title = reader.nextString();
                } else if (name.equals("year")) {
                    reader.skipValue();
                } else {
                    System.out.println(name);
                    reader.skipValue();
                }
            }
            reader.endObject();
        }
    } catch (Exception ex) {
    }

    return new PubMedDocument(text, title, pmid, journal, meshMajor);
}

From source file:de.dentrassi.eclipse.provider.eclipse.ValueAdapter.java

License:Open Source License

@Override
public String read(final JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        return null;
    }//from ww  w  .jav  a2  s.co  m

    String result = null;
    in.beginArray();
    while (in.hasNext()) {
        in.beginObject();
        while (in.hasNext()) {
            final String name = in.nextName();
            if ("value".equals(name)) {
                result = in.nextString();
            } else {
                in.skipValue();
            }
        }
        in.endObject();
    }
    in.endArray();

    return result;
}

From source file:de.loercher.geomodule.cloudant.CloudantGeoSearchStream.java

private void extractEntities(BufferedReader bufferedReader) throws JSONParseException {
    JsonReader reader = new JsonReader(bufferedReader);
    try {// ww w. ja va 2s  .  com
        reader.beginObject();

        String arrayName = null;
        while (reader.hasNext() && !("features".equals(arrayName))) {
            arrayName = reader.nextName();
            if ("bookmark".equals(arrayName)) {
                bookmark = reader.nextString();
            } else if (!("features".equals(arrayName))) {
                reader.skipValue();
            }
        }

        if ("features".equals(arrayName)) {
            reader.beginArray();

            while (reader.hasNext()) {
                Gson gson = new Gson();
                CloudantArticleEntity entity = gson.fromJson(reader, CloudantArticleEntity.class);

                // Duplicates should not be returned
                if (!(alreadyAvailableIds.contains(entity.getId()))) {
                    bufferedEntities.add(entity);
                }

                alreadyAvailableIds.add(entity.getId());
            }

            reader.endArray();
            reader.endObject();
            reader.close();
        } else {
            JSONParseException e = new JSONParseException(
                    "Parsing of cloudant response failed. Tag 'features' not found. ");
            log.error(e.getLoggingString());
            throw e;
        }
    } catch (IOException ex) {
        JSONParseException e = new JSONParseException("Parsing of cloudant response failed.", ex);
        log.error(e.getLoggingString());
        throw e;
    }
}

From source file:de.pribluda.android.jsonmarshaller.JSONUnmarshaller.java

License:Apache License

/**
 * unmarshall single JSON object/*from w ww. j a v a2 s. c  o  m*/
 *
 * @param beanToBeCreatedClass
 * @param <T>
 * @return
 * @throws IllegalAccessException
 * @throws InstantiationException
 * @throws NoSuchMethodException
 * @throws InvocationTargetException
 */
public static <T> T unmarshall(JsonReader reader, java.lang.Class<T> beanToBeCreatedClass) throws IOException,
        NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
    // nothing there - bail out
    reader.beginObject();

    if (reader.peek() == null) {
        return null;
    }
    T value = beanToBeCreatedClass.getConstructor().newInstance();
    while (reader.hasNext()) {
        String key = reader.nextName();

        //  capitalise to standard setter pattern
        StringBuilder sb = new StringBuilder();
        sb.append(SETTER_PREFIX).append(Character.toUpperCase(key.charAt(0))).append(key.substring(1));
        String methodName = sb.toString();

        Method method = getCandidateMethod(beanToBeCreatedClass, methodName);

        // must be kind of setter method
        if (method != null) {
            Class clazz = method.getParameterTypes()[0];
            // as we have setter, we can process value
            Object v = unmarshalValue(reader, clazz);

            // can we use setter method directly?
            if (clazz.isAssignableFrom(v.getClass())) {
                method.invoke(value, v);
                continue;
            }

            Object obj = convertToObject(clazz, v);
            if (obj != null)
                method.invoke(value, obj);
        } else {
            // no suitable method was found - skip this value altogether
            reader.skipValue();
        }
    }

    reader.endObject();

    return value;

}

From source file:de.sabian.objectstore.ObjectStoreRaw.java

License:Apache License

public <T, X> boolean fillMap(String identifier, Class<T> classOfKeys, Class<X> classOfValues, Map<T, X> map)
        throws IOException {
    if (contains(identifier)) {
        JsonReader jReader = new JsonReader(new StringReader(mJsonStorage.getJson(identifier)));
        jReader.beginArray();//from   ww  w  .  ja  v  a  2s  . c om
        while (jReader.hasNext()) {
            jReader.beginObject();
            String name = jReader.nextName();
            if (!name.equals("key"))
                throw new IOException("expected name key but found: " + name);
            T key = mGson.fromJson(jReader, classOfKeys);
            name = jReader.nextName();
            if (!name.equals("value"))
                throw new IOException("expected name value but found: " + name);
            X value = mGson.fromJson(jReader, classOfValues);
            jReader.endObject();
            map.put(key, value);
        }
        jReader.endArray();
        jReader.close();
        return true;
    } else
        return false;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

public static DirectedWeightedMultigraph<Node, DefaultLink> readGraph(JsonReader reader) throws IOException {

    DirectedWeightedMultigraph<Node, DefaultLink> graph = new DirectedWeightedMultigraph<Node, DefaultLink>(
            LabeledLink.class);

    Node n, source, target;/*w  w w  .j a v a2s  .  c o  m*/
    DefaultLink l;
    Double[] weight = new Double[1];
    HashMap<String, Node> idToNodes = new HashMap<>();

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("nodes") && reader.peek() != JsonToken.NULL) {
            reader.beginArray();
            while (reader.hasNext()) {
                n = readNode(reader);
                if (n != null) {
                    idToNodes.put(n.getId(), n);
                    graph.addVertex(n);
                }
            }
            reader.endArray();
        } else if (key.equals("links") && reader.peek() != JsonToken.NULL) {
            reader.beginArray();
            while (reader.hasNext()) {
                l = readLink(reader, weight);
                if (l != null) {
                    source = idToNodes.get(LinkIdFactory.getLinkSourceId(l.getId()));
                    target = idToNodes.get(LinkIdFactory.getLinkTargetId(l.getId()));
                    if (source != null && target != null) {
                        graph.addEdge(source, target, l);
                        if (weight[0] != null)
                            graph.setEdgeWeight(l, weight[0].doubleValue());
                    }
                }
            }
            reader.endArray();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    return graph;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static Node readNode(JsonReader reader) throws IOException {

    String id = null;/*  w  ww  .  jav a 2s  .c  o  m*/
    Label label = null;
    NodeType type = null;
    String hNodeId = null;
    String columnName = null;
    Label rdfLiteralType = null;
    String language = null;
    Label datatype = null;
    String value = null;
    boolean isUri = false;
    SemanticType userSelectedSemanticType = null;
    List<SemanticType> learnedSemanticTypes = null;
    List<SemanticType> userSemanticTypes = null;
    Set<String> modelIds = null;

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id") && reader.peek() != JsonToken.NULL) {
            id = reader.nextString();
        } else if (key.equals("label") && reader.peek() != JsonToken.NULL) {
            label = readLabel(reader);
        } else if (key.equals("type") && reader.peek() != JsonToken.NULL) {
            type = NodeType.valueOf(reader.nextString());
        } else if (key.equals("hNodeId") && reader.peek() != JsonToken.NULL) {
            hNodeId = reader.nextString();
        } else if (key.equals("columnName") && reader.peek() != JsonToken.NULL) {
            columnName = reader.nextString();
        } else if (key.equals("datatype") && reader.peek() != JsonToken.NULL) {
            datatype = readLabel(reader);
        } else if (key.equals("value") && reader.peek() != JsonToken.NULL) {
            value = reader.nextString();
        } else if (key.equals("isUri") && reader.peek() != JsonToken.NULL) {
            isUri = Boolean.parseBoolean(reader.nextString());
        } else if (key.equals("rdfLiteralType") && reader.peek() != JsonToken.NULL) {
            rdfLiteralType = readLabel(reader);
        } else if (key.equals("language") && reader.peek() != JsonToken.NULL) {
            language = reader.nextString();
        } else if (key.equals("userSelectedSemanticType") && reader.peek() != JsonToken.NULL) {
            userSelectedSemanticType = readSemanticType(reader);
        } else if (key.equals("suggestedSemanticTypes") && reader.peek() != JsonToken.NULL) {
            learnedSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                learnedSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("userSemanticTypes") && reader.peek() != JsonToken.NULL) {
            userSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                userSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("learnedSemanticTypes") && reader.peek() != JsonToken.NULL) {
            learnedSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                learnedSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("modelIds") && reader.peek() != JsonToken.NULL) {
            modelIds = readModelIds(reader);
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    Node n = null;
    if (type == NodeType.InternalNode) {
        n = new InternalNode(id, label);
    } else if (type == NodeType.ColumnNode) {
        n = new ColumnNode(id, hNodeId, columnName, rdfLiteralType, language);
        if (userSemanticTypes == null && userSelectedSemanticType != null) {
            userSemanticTypes = new ArrayList<>();
            userSemanticTypes.add(userSelectedSemanticType);
        }
        if (userSemanticTypes != null) {
            for (SemanticType st : userSemanticTypes)
                ((ColumnNode) n).assignUserType(st);
        }
        ((ColumnNode) n).setLearnedSemanticTypes(learnedSemanticTypes);
    } else if (type == NodeType.LiteralNode) {
        n = new LiteralNode(id, value, datatype, language, isUri);
    } else {
        logger.error("cannot instanciate a node from the type: " + type.toString());
        return null;
    }

    n.setModelIds(modelIds);

    return n;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static DefaultLink readLink(JsonReader reader, Double[] weight) throws IOException {

    String id = null;// ww w  .  j  a  v  a  2s. c  o  m
    Label label = null;
    LinkType type = null;
    String hNodeId = null;
    ObjectPropertyType objectPropertyType = null;
    String specializedLinkId = null;
    LinkStatus status = null;
    LinkKeyInfo keyInfo = null;
    Set<String> modelIds = null;
    if (weight == null)
        weight = new Double[1];

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id") && reader.peek() != JsonToken.NULL) {
            id = reader.nextString();
        } else if (key.equals("label") && reader.peek() != JsonToken.NULL) {
            label = readLabel(reader);
        } else if (key.equals("type") && reader.peek() != JsonToken.NULL) {
            type = LinkType.valueOf(reader.nextString());
        } else if (key.equals("hNodeId") && reader.peek() != JsonToken.NULL) {
            hNodeId = reader.nextString();
        } else if (key.equals("objectPropertyType") && reader.peek() != JsonToken.NULL) {
            objectPropertyType = ObjectPropertyType.valueOf(reader.nextString());
        } else if (key.equals("specializedLinkId") && reader.peek() != JsonToken.NULL) {
            specializedLinkId = reader.nextString();
        } else if (key.equals("status") && reader.peek() != JsonToken.NULL) {
            status = LinkStatus.valueOf(reader.nextString());
        } else if (key.equals("keyInfo") && reader.peek() != JsonToken.NULL) {
            keyInfo = LinkKeyInfo.valueOf(reader.nextString());
        } else if (key.equals("modelIds") && reader.peek() != JsonToken.NULL) {
            modelIds = readModelIds(reader);
        } else if (key.equals("weight") && reader.peek() != JsonToken.NULL) {
            weight[0] = new Double(reader.nextDouble());
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    DefaultLink l = null;
    if (type == LinkType.ClassInstanceLink) {
        l = new ClassInstanceLink(id, keyInfo);
    } else if (type == LinkType.ColumnSubClassLink) {
        l = new ColumnSubClassLink(id);
    } else if (type == LinkType.DataPropertyLink) {
        l = new DataPropertyLink(id, label);
    } else if (type == LinkType.DataPropertyOfColumnLink) {
        l = new DataPropertyOfColumnLink(id, hNodeId, specializedLinkId);
    } else if (type == LinkType.ObjectPropertyLink) {
        l = new ObjectPropertyLink(id, label, objectPropertyType);
    } else if (type == LinkType.ObjectPropertySpecializationLink) {
        l = new ObjectPropertySpecializationLink(hNodeId, specializedLinkId);
    } else if (type == LinkType.SubClassLink) {
        l = new SubClassLink(id);
    } else if (type == LinkType.CompactObjectPropertyLink) {
        l = new CompactObjectPropertyLink(id, objectPropertyType);
    } else if (type == LinkType.CompactSubClassLink) {
        l = new CompactSubClassLink(id);
    } else {
        logger.error("cannot instanciate a link from the type: " + type.toString());
        return null;
    }

    if (l instanceof LabeledLink) {
        ((LabeledLink) l).setStatus(status);
        ((LabeledLink) l).setModelIds(modelIds);
    }
    return l;
}