List of usage examples for com.google.gson.stream JsonReader endArray
public void endArray() throws IOException
From source file:eu.jtzipi.project0.common.json.impl.GsonReadWrite.java
License:Apache License
static Map<String, Object> parseObject(final JsonReader jsonReader) throws IOException { Map<String, Object> map = new HashMap<>(); String tempKey;/*from ww w . ja v a 2 s . c om*/ JsonToken tok; // while (jsonReader.hasNext()) { // since we want to restore a map we assue a key/value pair tempKey = jsonReader.nextName(); // tok = jsonReader.peek(); // we reach the end of this array if (JsonToken.END_ARRAY == tok) { jsonReader.endArray(); // return break; } // what token switch (tok) { // if array/map - parse and append case BEGIN_ARRAY: map.put(tempKey, parseArray(jsonReader)); break; case BEGIN_OBJECT: map.put(tempKey, parseObject(jsonReader)); break; // if raw type case STRING: map.put(tempKey, jsonReader.nextString()); break; case BOOLEAN: map.put(tempKey, jsonReader.nextBoolean()); break; case NUMBER: map.put(tempKey, jsonReader.nextDouble()); break; // if null , add null and consume case NULL: map.put(tempKey, null); jsonReader.nextNull(); break; // all other cases are errors default: throw new IllegalStateException("Wrong Token '" + tok + "' , while parsing an array"); } } return map; }
From source file:guru.qas.martini.report.DefaultTraceabilityMatrix.java
License:Apache License
@Override public void createReport(JsonReader reader, OutputStream outputStream) throws IOException { checkNotNull(reader, "null JsonReader"); checkNotNull(outputStream, "null OutputStream"); Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Results"); addHeader(sheet);// w w w . ja v a 2 s .c o m State state = new DefaultState(); while (reader.hasNext()) { JsonToken peek = reader.peek(); JsonObject object; switch (peek) { case BEGIN_ARRAY: reader.beginArray(); continue; case BEGIN_OBJECT: object = gson.fromJson(reader, JsonObject.class); break; case END_ARRAY: reader.endArray(); continue; case END_DOCUMENT: reader.skipValue(); continue; default: JsonElement element = gson.fromJson(reader, JsonElement.class); LOGGER.warn("skipping unhandled element {}", element); continue; } switch (JsonObjectType.evaluate(object)) { case SUITE: JsonObject suite = SUITE.get(object); state.addSuite(suite); break; case FEATURE: JsonObject feature = FEATURE.get(object); state.addFeature(feature); break; case RESULT: JsonObject result = RESULT.get(object); addResult(state, sheet, result); break; default: LOGGER.warn("skipping unrecognized JsonObject: {}", object); } } state.updateResults(); resizeColumns(sheet); Sheet suiteSheet = workbook.createSheet("Suites"); state.updateSuites(suiteSheet); workbook.write(outputStream); outputStream.flush(); }
From source file:io.github.rcarlosdasilva.weixin.core.json.adapter.OpenPlatformAuthGetLicenseInformationResponseTypeAdapter.java
private void readLicensedAccessToken(JsonReader in, OpenPlatformAuthGetLicenseInformationResponse model) throws IOException { LicensingInformation licensingInformation = new LicensingInformation(); in.beginObject();//from w w w.j a v a 2 s . c o m while (in.hasNext()) { String key = in.nextName(); switch (key) { case Convention.OPEN_PLATFORM_AUTH_LICENSED_APPID_ALIAS_KEY: case Convention.OPEN_PLATFORM_AUTH_LICENSED_APPID_KEY: licensingInformation.setAppId(in.nextString()); break; case Convention.OPEN_PLATFORM_AUTH_LICENSED_ACCESS_TOKEN_KEY: model.getLicensedAccessToken().setAccessToken(in.nextString()); break; case Convention.OPEN_PLATFORM_AUTH_LICENSED_ACCESS_TOKEN_EXPIRES_IN_KEY: model.getLicensedAccessToken().setExpiresIn(in.nextInt()); break; case Convention.OPEN_PLATFORM_AUTH_LICENSED_REFRESH_TOKEN_KEY: model.getLicensedAccessToken().setRefreshToken(in.nextString()); break; case Convention.OPEN_PLATFORM_AUTH_LICENSED_FUNCTIONS_INFO_KEY: { in.beginArray(); while (in.hasNext()) { in.beginObject(); in.nextName(); in.beginObject(); in.nextName(); licensingInformation.addLicencedFunction(in.nextInt()); in.endObject(); in.endObject(); } in.endArray(); break; } default: if (in.hasNext()) { String value = in.nextString(); logger.warn(LOG_UNKNOWN_JSON_KEY, key, value); } } } in.endObject(); model.setLicensingInformation(licensingInformation); }
From source file:io.grpc.internal.JsonParser.java
License:Apache License
private static List<?> parseJsonArray(JsonReader jr) throws IOException { jr.beginArray();// w w w . j av a 2 s . co m List<Object> array = new ArrayList<>(); while (jr.hasNext()) { Object value = parseRecursive(jr); array.add(value); } checkState(jr.peek() == JsonToken.END_ARRAY, "Bad token: " + jr.getPath()); jr.endArray(); return Collections.unmodifiableList(array); }
From source file:it.bradipao.berengar.DbTool.java
License:Apache License
public static int gson2db(SQLiteDatabase mDB, File jsonFile) { // vars// w w w . ja va 2 s . c o m int iTableNum = 0; FileReader fr = null; BufferedReader br = null; JsonReader jr = null; String name = null; String val = null; String mTable = null; String mTableSql = null; ArrayList<String> aFields = null; ArrayList<String> aValues = null; ContentValues cv = null; // file readers try { fr = new FileReader(jsonFile); br = new BufferedReader(fr); jr = new JsonReader(br); } catch (FileNotFoundException e) { Log.e(LOGTAG, "error in gson2db file readers", e); } // parsing try { // start database transaction mDB.beginTransaction(); // open root { jr.beginObject(); // iterate through root objects while (jr.hasNext()) { name = jr.nextName(); if (jr.peek() == JsonToken.NULL) jr.skipValue(); // number of tables else if (name.equals("tables_num")) { val = jr.nextString(); iTableNum = Integer.parseInt(val); if (GOLOG) Log.d(LOGTAG, "TABLE NUM : " + iTableNum); } // iterate through tables array else if (name.equals("tables")) { jr.beginArray(); while (jr.hasNext()) { // start table mTable = null; aFields = null; jr.beginObject(); while (jr.hasNext()) { name = jr.nextName(); if (jr.peek() == JsonToken.NULL) jr.skipValue(); // table name else if (name.equals("table_name")) { mTable = jr.nextString(); } // table sql else if (name.equals("table_sql")) { mTableSql = jr.nextString(); if ((mTable != null) && (mTableSql != null)) { mDB.execSQL("DROP TABLE IF EXISTS " + mTable); mDB.execSQL(mTableSql); if (GOLOG) Log.d(LOGTAG, "DROPPED AND CREATED TABLE : " + mTable); } } // iterate through columns name else if (name.equals("cols_name")) { jr.beginArray(); while (jr.hasNext()) { val = jr.nextString(); if (aFields == null) aFields = new ArrayList<String>(); aFields.add(val); } jr.endArray(); if (GOLOG) Log.d(LOGTAG, "COLUMN NAME : " + aFields.toString()); } // iterate through rows else if (name.equals("rows")) { jr.beginArray(); while (jr.hasNext()) { jr.beginArray(); // iterate through values in row aValues = null; cv = null; while (jr.hasNext()) { val = jr.nextString(); if (aValues == null) aValues = new ArrayList<String>(); aValues.add(val); } jr.endArray(); // add to database cv = new ContentValues(); for (int j = 0; j < aFields.size(); j++) cv.put(aFields.get(j), aValues.get(j)); mDB.insert(mTable, null, cv); if (GOLOG) Log.d(LOGTAG, "INSERT IN " + mTable + " : " + aValues.toString()); } jr.endArray(); } else jr.skipValue(); } // end table jr.endObject(); } jr.endArray(); } else jr.skipValue(); } // close root } jr.endObject(); jr.close(); // successfull transaction mDB.setTransactionSuccessful(); } catch (IOException e) { Log.e(LOGTAG, "error in gson2db gson parsing", e); } finally { mDB.endTransaction(); } return iTableNum; }
From source file:json_export_import.GSON_Observer.java
public void read() { try {// w w w.j a v a 2 s .co m JsonReader reader = new JsonReader(new FileReader("/home/rgreim/Output.json")); reader.beginArray(); while (reader.hasNext()) { String sequence = reader.nextString(); System.out.println("Sequenz: " + sequence); } reader.endArray(); reader.close(); } catch (FileNotFoundException ex) { Logger.getLogger(GSON_Observer.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(GSON_Observer.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:kihira.minicreatures.MiniCreatures.java
License:Open Source License
@SuppressWarnings("ResultOfMethodCallIgnored") private void loadPersonalityTypes(File configDir) { File personalityTypesFile = new File(configDir, File.separator + "MiniCreatures" + File.separator + "PersonalityTypes.json"); try {// w ww .j a v a 2 s . c o m Gson gson = GsonHelper.createGson(Mood.class); if (!personalityTypesFile.exists()) { //Create files/directories new File(configDir, File.separator + "MiniCreatures").mkdirs(); personalityTypesFile.createNewFile(); JsonWriter jsonWriter = new JsonWriter(new FileWriter(personalityTypesFile)); //TODO just copy a pre-genned file like marker beacons //Create defaults //Create default personalities jsonWriter.beginArray(); List<String> list = new ArrayList<String>(); list.add(EntityMiniPlayer.class.getName()); gson.toJson(gson.toJsonTree(new Mood("psychotic", list, new HashMap<String, MoodVariable>() { { put("happiness", new MoodVariable(35, 50)); put("hostility", new MoodVariable(40, 50)); } })), jsonWriter); gson.toJson(gson.toJsonTree(new Mood("coldblooded", list, new HashMap<String, MoodVariable>() { { put("happiness", new MoodVariable(-50, 0)); put("hostility", new MoodVariable(40, 50)); } })), jsonWriter); gson.toJson(gson.toJsonTree(new Mood("happy", list, new HashMap<String, MoodVariable>() { { put("happiness", new MoodVariable(10, 50)); put("hostility", new MoodVariable(-50, 10)); } })), jsonWriter); gson.toJson(gson.toJsonTree(new Mood("depressed", list, new HashMap<String, MoodVariable>() { { put("happiness", new MoodVariable(-50, 0)); put("hostility", new MoodVariable(-10, 10)); } })), jsonWriter); gson.toJson(gson.toJsonTree(new MoodTest("test")), jsonWriter); jsonWriter.endArray(); jsonWriter.close(); } //Load personality types JsonReader reader = new JsonReader(new FileReader(personalityTypesFile)); reader.beginArray(); while (reader.hasNext()) { Mood mood = gson.fromJson(reader, Mood.class); Personality.moodList.add(mood); logger.debug("Loaded mood %s", mood.toString()); } reader.endArray(); } catch (IOException e1) { e1.printStackTrace(); } }
From source file:me.ixfan.wechatkit.message.out.json.MassMessageGsonTypeAdapter.java
License:Open Source License
@Override public MessageForMassSend read(JsonReader in) throws IOException { MessageForMassSend.Filter filter = null; List<String> toUser = null; String msgType = null;/*from w w w . j a v a2s . c o m*/ String msgContent = null; in.beginObject(); while (in.hasNext()) { switch (in.nextName()) { case "msgtype": msgType = in.nextString(); break; case "filter": in.beginObject(); String tagId = null; boolean isToAll = false; while (in.hasNext()) { switch (in.nextName()) { case "is_to_all": isToAll = in.nextBoolean(); break; case "tag_id": tagId = in.nextString(); break; default: break; } } in.endObject(); filter = new MessageForMassSend.Filter(tagId, isToAll); break; case "touser": in.beginArray(); toUser = new ArrayList<>(); while (in.hasNext()) { toUser.add(in.nextString()); } in.endArray(); break; case "text": case "image": case "voice": case "mpnews": case "mpvideo": case "wxcard": in.beginObject(); while (in.hasNext()) { switch (in.nextName()) { case "content": case "media_id": case "card_id": msgContent = in.nextString(); break; default: break; } } in.endObject(); break; default: break; } } in.endObject(); if (null != filter) { return new MessageForMassSend(OutMessageType.valueOf(msgType), msgContent, filter.getTagId(), filter.isToAll()); } else if (null != toUser) { return new MessageForMassSend(OutMessageType.valueOf(msgType), msgContent, toUser); } return null; }
From source file:me.j360.trace.core.internal.JsonCodec.java
License:Apache License
public List<List<Span>> readTraces(byte[] bytes) { JsonReader reader = jsonReader(bytes); List<List<Span>> result = new LinkedList<List<Span>>(); // cause we don't know how long it will be try {//from www . j a v a2 s .c o m reader.beginArray(); while (reader.hasNext()) { reader.beginArray(); List<Span> trace = new LinkedList<Span>(); // cause we don't know how long it will be while (reader.hasNext()) { trace.add(SPAN_ADAPTER.fromJson(reader)); } reader.endArray(); result.add(trace); } reader.endArray(); return result; } catch (Exception e) { throw exceptionReading("List<List<Span>>", bytes, e); } }
From source file:me.j360.trace.core.internal.JsonCodec.java
License:Apache License
static <T> List<T> readList(JsonAdapter<T> adapter, byte[] bytes) { JsonReader reader = jsonReader(bytes); List<T> result;//from www.j ava2s . c o m try { reader.beginArray(); if (reader.hasNext()) { result = new LinkedList<T>(); // cause we don't know how long it will be } else { result = Collections.emptyList(); } while (reader.hasNext()) { result.add(adapter.fromJson(reader)); } reader.endArray(); return result; } catch (Exception e) { throw exceptionReading("List<" + adapter + ">", bytes, e); } }