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

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

Introduction

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

Prototype

public void endObject() throws IOException 

Source Link

Document

Consumes the next token from the JSON stream and asserts that it is the end of the current object.

Usage

From source file:controllers.ParseController.java

@RequestMapping("/addFile")
public String addFile(Map<String, Object> model, @RequestParam("newFile") MultipartFile file)
        throws IOException {
    File newFile = new File("/usr/local/etc/newFile");
    if (!newFile.exists()) {
        FileUtils.writeByteArrayToFile(newFile, file.getBytes());
    } else {//from   w  w w . j  a  v  a 2 s  .  com
        newFile.delete();
        FileUtils.writeByteArrayToFile(newFile, file.getBytes());
    }
    if (newFile.exists()) {
        JsonReader reader = new JsonReader(new FileReader(newFile));
        try {
            reader.beginObject();
            while (reader.hasNext()) {
                String objectName = reader.nextName();
                if (objectName.equals("colors")) {
                    reader.beginObject();
                    while (reader.hasNext()) {
                        String colorNameId = reader.nextName();
                        reader.beginObject();
                        Long oldColorId = Long.valueOf("0");
                        String title = "0";
                        String titleEng = "0";
                        while (reader.hasNext()) {
                            String objectField = reader.nextName();
                            if (objectField.equals("id")) {
                                oldColorId = reader.nextLong();
                            }
                            if (objectField.equals("title")) {
                                title = reader.nextString();
                            }
                            if (objectField.equals("title_eng")) {
                                titleEng = reader.nextString();
                            }
                            if (objectField.equals("aliases")) {
                                String oldId = "";
                                String name = "";
                                if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) {
                                    reader.beginArray();
                                    reader.endArray();
                                    oldId = "0";
                                    name = "? ";

                                    Color c = new Color();
                                    c.setName(name);
                                    c.setTitle(title);
                                    c.setTitleEng(titleEng);
                                    c.setOldGroupId(oldColorId);
                                    c.setOldId(Long.valueOf(oldId));

                                    colorService.createColor(c);
                                    //keys.add(oldColorId + " - " + title + " - " + titleEng + " - " + oldId + " - " + name);

                                } else {
                                    reader.beginObject();
                                    while (reader.hasNext()) {
                                        oldId = reader.nextName();
                                        name = reader.nextString();
                                        Color c = new Color();
                                        c.setName(name);
                                        c.setTitle(title);
                                        c.setTitleEng(titleEng);
                                        c.setOldGroupId(oldColorId);
                                        c.setOldId(Long.valueOf(oldId));

                                        colorService.createColor(c);
                                        //keys.add(oldColorId + " - " + title + " - " + titleEng + " - " + oldId + " - " + name);
                                    }
                                    reader.endObject();
                                }
                            }
                        }
                        reader.endObject();
                    }
                    reader.endObject();
                } else if (objectName.equals("color_groups")) {
                    reader.beginObject();
                    while (reader.hasNext()) {
                        String colorGroupNameId = reader.nextName();
                        reader.beginObject();
                        Long oldGroupId = Long.valueOf("0");
                        String title = "";
                        while (reader.hasNext()) {
                            String objectField = reader.nextName();
                            if (objectField.equals("id")) {
                                oldGroupId = reader.nextLong();
                            } else if (objectField.equals("title")) {
                                title = reader.nextString();
                            } else if (objectField.equals("aliases")) {
                                reader.beginObject();
                                while (reader.hasNext()) {
                                    String oldId = reader.nextName();
                                    String name = reader.nextString();
                                    ColorGroup cg = new ColorGroup();
                                    cg.setName(name);
                                    cg.setTitle(title);
                                    cg.setOldGroupId(oldGroupId);
                                    cg.setOldId(Long.valueOf(oldId));

                                    colorGroupService.createColorGroup(cg);
                                    //keys.add(oldGroupId + " - " + title + " - " + oldId + " - " + name);
                                }
                                reader.endObject();
                            }
                        }
                        reader.endObject();
                    }
                    reader.endObject();
                    //keys.add(name);
                } else if (objectName.equals("features")) {
                    reader.beginObject();
                    while (reader.hasNext()) {
                        String featureNameId = reader.nextName();
                        reader.beginObject();
                        Long featureId = Long.valueOf("0");
                        String title = "";
                        String description = "";
                        Long cmgId = null;
                        Long ccoId = null;
                        String media = "";
                        while (reader.hasNext()) {
                            String objectField = reader.nextName();
                            if (objectField.equals("id")) {
                                featureId = reader.nextLong();
                            } else if (objectField.equals("title")) {
                                title = reader.nextString();
                            } else if (objectField.equals("description")) {
                                description = reader.nextString();
                            } else if (objectField.equals("car_model_generation_id")) {
                                if (!reader.peek().equals(JsonToken.NULL)) {
                                    cmgId = reader.nextLong();
                                } else {
                                    reader.skipValue();
                                }
                            } else if (objectField.equals("car_completion_option_id")) {
                                if (!reader.peek().equals(JsonToken.NULL)) {
                                    ccoId = reader.nextLong();
                                } else {
                                    reader.skipValue();
                                }
                            } else if (objectField.equals("media")) {
                                //reader.skipValue();
                                if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) {
                                    reader.beginObject();
                                    while (reader.hasNext()) {
                                        if (reader.peek().equals(JsonToken.NAME)) {
                                            String mediaName = reader.nextName();
                                            media += mediaName + " : [ ";
                                            reader.beginArray();
                                            while (reader.hasNext()) {
                                                media += " { ";
                                                reader.beginObject();
                                                while (reader.hasNext()) {
                                                    String mediaParamName = reader.nextName();
                                                    media += mediaParamName + " : ";
                                                    if (!mediaParamName.equals("url")) {
                                                        if (!reader.peek().equals(JsonToken.NULL)) {
                                                            media += reader.nextString();
                                                        } else {
                                                            reader.skipValue();
                                                            media += "null";
                                                        }
                                                    } else {
                                                        reader.beginObject();
                                                        media += "{";
                                                        while (reader.hasNext()) {
                                                            media += reader.nextName() + " : "
                                                                    + reader.nextString();
                                                        }
                                                        media += "}";
                                                        reader.endObject();
                                                    }
                                                }
                                                reader.endObject();
                                                media += " } ";
                                            }
                                            reader.endArray();
                                            media += " ] ";
                                        }
                                    }
                                    reader.endObject();
                                } else {
                                    reader.skipValue();
                                }
                            }

                        }
                        reader.endObject();
                        Feature f = new Feature();
                        f.setOldId(featureId);
                        f.setTitle(title);
                        f.setDescription(description);
                        f.setCmgId(cmgId);
                        f.setCcoId(ccoId);
                        f.setMedia(media);

                        //keys.add(featureId + " - " + title + " - " + description + " - " + cmgId + " - " + ccoId + " - " + media);
                        featureService.createFeature(f);
                    }
                    reader.endObject();
                } else {
                    reader.skipValue();
                }
            }
            reader.endObject();
            reader.close();
        } catch (Exception e) {
            model.put("error", "? ?  :"
                    + StringAdapter.getStackTraceException(e));
            reader.close();
            return "ParseShow";
        }
    }
    return "redirect:/ParseController/show";
}

From source file:data.Task1bData.java

License:Apache License

public void readData(String jsonFile) throws IOException {

    int num_questions = 0;
    int num_triples = 0;
    int type_yesno = 0;
    int type_factoid = 0;
    int type_list = 0;
    int type_summary = 0;

    try {//from w ww  .ja v  a  2  s.  co  m
        JsonReader reader = new JsonReader(new InputStreamReader(new FileInputStream(jsonFile)));
        //reader.setLenient(true);
        //    JsonToken peeknext = reader.peek();
        //    peeknext.

        reader.beginObject();
        while (reader.hasNext()) {

            String nextfield = reader.nextName();
            if (nextfield.equals("questions")) {
                reader.beginArray();
                while (reader.hasNext()) {

                    reader.beginObject();
                    num_questions++;

                    Question qst = new Question();

                    while (reader.hasNext()) {
                        String name = reader.nextName();
                        int k = 0;
                        if (name.equals("body")) {
                            String body = reader.nextString();
                            qst.setBody(body);
                        } else if (name.equals("triples")) {
                            num_triples++;
                            ArrayList<Triple> triples = readTriplesArray(reader);
                            qst.addTriples(triples);
                        } else if (name.equals("type")) {
                            String type = reader.nextString();

                            if (type.equals("yesno")) {
                                qst.setType(Question.YESNO);
                                type_yesno++;

                            } else if (type.equals("factoid")) {
                                qst.setType(Question.FACTOID);
                                type_factoid++;

                            }
                            if (type.equals("summary")) {
                                qst.setType(Question.SUMMARY);
                                type_summary++;

                            }
                            if (type.equals("list")) {
                                qst.setType(Question.LIST);
                                type_list++;

                            }
                        } else if (name.equals("id")) {
                            String id = reader.nextString();
                            qst.setId(id);
                        } else if (name.equals("concepts")) {
                            ArrayList<String> concepts = readConcepts(reader);
                            qst.addConcepts(concepts);
                        } else if (name.equals("documents")) {
                            ArrayList<String> docs = readDocuments(reader);

                            qst.addDocuments(docs);
                        } else if (name.equals("exact_answer")) {
                            ExactAnswer ea = new ExactAnswer();
                            JsonToken peek = reader.peek();
                            if (peek == JsonToken.BEGIN_ARRAY) //list or factoid
                            {
                                reader.beginArray();

                                JsonToken peek1 = reader.peek();
                                ArrayList<String> listOfAnswers = new ArrayList<String>();
                                ArrayList<ArrayList<String>> listofarrays = new ArrayList<ArrayList<String>>();

                                if (peek1 == JsonToken.BEGIN_ARRAY) // list (or factoid-list since BioASQ3)
                                {
                                    /*
                                     * Warning: changed the following for BioASQ 5
                                     * No synonyms in submissions anymore, only in gold files
                                    */
                                    if (VERSION_OF_CHALLENGE == evaluation.EvaluatorTask1b.BIOASQ2
                                            || VERSION_OF_CHALLENGE == evaluation.EvaluatorTask1b.BIOASQ3) {
                                        listofarrays = readExactAnswerListOfArraysv2(reader);
                                        ea.setLists(listofarrays);
                                    } else if (VERSION_OF_CHALLENGE == evaluation.EvaluatorTask1b.BIOASQ5) {
                                        if (!this.isGold) { // For submissions use restricted parsing : only first of synonyms taken into account
                                            listofarrays = readExactAnswerListOfArraysv3(reader);
                                        } else { // For golden read all synonyms normally
                                            listofarrays = readExactAnswerListOfArraysv2(reader);
                                        }
                                        ea.setLists(listofarrays);
                                    } else {
                                        System.out.println("Wrong challenge version. I will exit.");
                                        System.exit(0);
                                    }
                                } else if (peek1 == JsonToken.STRING) // factoid (for BioASQ1&2)
                                {
                                    /*
                                     * Warning: changed the following for BioASQ 3
                                     * we now have list of arrays for factoid 
                                    */
                                    if (VERSION_OF_CHALLENGE == evaluation.EvaluatorTask1b.BIOASQ2) {
                                        listOfAnswers = readExactAnswerArray(reader);
                                        ea.setAnswers(listOfAnswers);
                                    }
                                    //not reached!
                                    else if (VERSION_OF_CHALLENGE == evaluation.EvaluatorTask1b.BIOASQ3) {
                                        listofarrays = readExactAnswerListOfArraysv2(reader);
                                        ea.setLists(listofarrays);
                                    }
                                    /*
                                     * Warning: changed the following for BioASQ 5
                                     * No synonyms are submitted anymore by participants
                                    */
                                    //not reached!
                                    else if (VERSION_OF_CHALLENGE == evaluation.EvaluatorTask1b.BIOASQ5) {
                                        listofarrays = readExactAnswerListOfArraysv3(reader);
                                        ea.setLists(listofarrays);
                                    } else {
                                        System.out.println("Wrong challenge version. I will exit.");
                                        System.exit(0);
                                    }
                                }

                                //ea.setAnswers(listOfAnswers);
                                qst.setExact_answer(ea);
                                reader.endArray();

                            } else if (peek == JsonToken.STRING) //yesno
                            {
                                String yesno_answer = reader.nextString();
                                yesno_answer = yesno_answer.toLowerCase();
                                if (yesno_answer.contains("yes"))
                                    ea.setAnswer("yes");
                                else if (yesno_answer.contains("no"))
                                    ea.setAnswer("no");
                                else {
                                    ea.setAnswer("none");
                                    //  System.out.println("Unknown answer in yesno question: "+yesno_answer);
                                }
                                qst.setExact_answer(ea);
                            }

                        }

                        //                      Edited for BioASQ4 Evaluation (to solve format conflict with Rouge.py)            
                        //                      ideal answers are not evaluated with this code, so no need to read them(Rouge and manual queration is used instead)

                        //                      else if(name.equals("ideal_answer"))
                        //                      {
                        //                          String ideal="";
                        //                          try{ideal = reader.nextString();}catch(IllegalStateException ex){System.out.println(ex.toString());System.out.println(jsonFile);
                        //                          }
                        //                          qst.setIdeal_answer(ideal);
                        //                      }
                        else if (name.equals("snippets")) {
                            ArrayList<Snippet> snippets = readSnippets(reader);
                            qst.addSnippets(snippets);
                        } else {
                            reader.skipValue();

                        }
                    }
                    //reader.skipValue();
                    reader.endObject();
                    this.questions.add(qst);

                }
                reader.endArray();
            } else {
                reader.skipValue();

            }
        }
        reader.endObject();
        /*     System.out.println("Number of questions:"+num_questions);
             System.out.println("Number of triples:"+num_triples);
             System.out.println("Number of yesno:"+type_yesno);
             System.out.println("Number of factoid:"+type_factoid);
             System.out.println("Number of list:"+type_list);
             System.out.println("Number of summary:"+type_summary);*/

    } catch (FileNotFoundException ex) {
        System.out.println("Problem in JSONfile : " + jsonFile);
    }

}

From source file:data.Task1bData.java

License:Apache License

private ArrayList<Triple> readTriplesArray(JsonReader reader) {

    ArrayList<Triple> triples = new ArrayList<Triple>();

    try {//from  w  ww  .  j a va2s  . c  o  m
        reader.beginArray();
        while (reader.hasNext()) {

            reader.beginObject();
            String op = "", pre = "", sub = "";
            while (reader.hasNext()) {
                String name = reader.nextName();
                if (name.equals("o")) {
                    JsonToken peek = reader.peek();
                    if (peek.equals(JsonToken.NULL)) {
                        op = "";
                        reader.nextNull();
                    } else
                        op = reader.nextString();
                } else if (name.equals("p")) {
                    pre = reader.nextString();
                } else if (name.equals("s")) {
                    JsonToken peek = reader.peek();
                    if (peek.equals(JsonToken.NULL)) {
                        sub = "";
                        reader.nextNull();

                    } else
                        sub = reader.nextString();
                } else
                    reader.skipValue();
            }
            Triple tr = new Triple(pre, sub, op);
            reader.endObject();
            triples.add(tr);
        }
        reader.endArray();
    } catch (IOException ex) {
    }

    return triples;
}

From source file:data.Task1bData.java

License:Apache License

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

    try {/*w w  w  .  j  a  v a2  s  .  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

public static void closeReader(JsonReader reader) {
    try {//from  w  ww  . ja va 2 s . c om

        reader.endArray();
        reader.endObject();
    } catch (IOException ex) {
        Logger.getLogger(TaskADataParser.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:data.TaskADataParser.java

License:Apache License

public static PubMedDocument getNextDocument(JsonReader reader) {
    String text = null;/*from www .  ja  v  a2s . c  om*/
    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 www . ja va  2 s  . c o 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 {/*w  w  w  . j  ava  2s .c  o m*/
        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//w  ww.  j ava  2  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();//  w  w  w . jav  a2  s .  com
        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;
}