List of usage examples for com.google.gson.stream JsonReader endObject
public void endObject() throws IOException
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; }