List of usage examples for com.google.gson.stream JsonReader peek
public JsonToken peek() throws IOException
From source file:org.wso2.carbon.governance.rest.api.internal.JSONMessageBodyReader.java
License:Open Source License
/** * Traverses through a json object and maps the keys and values to a {@link Map} * * @param reader {@link JsonReader} * @param map map that the values to be added. * @param token {@link JsonToken} * @param isArray whether the object is inside a json array * @throws IOException If unable to parse the json object *///from w w w. j ava 2s . c om protected void handleObject(JsonReader reader, Map<String, Object> map, JsonToken token, boolean isArray) throws IOException { String key = null; while (true) { if (token == null) { token = reader.peek(); } if (JsonToken.BEGIN_OBJECT.equals(token)) { reader.beginObject(); } else if (JsonToken.END_OBJECT.equals(token)) { reader.endObject(); } else if (JsonToken.NAME.equals(token)) { key = reader.nextName(); } else if (JsonToken.STRING.equals(token)) { String value = reader.nextString(); handleValue(key, value, map, isArray); key = null; } else if (JsonToken.NUMBER.equals(token)) { Double value = reader.nextDouble(); handleValue(key, value, map, isArray); key = null; } else if (token.equals(JsonToken.BEGIN_ARRAY)) { Map<String, Object> values = handleArray(reader); if (key != null) { map.put(key, values); } } else { reader.skipValue(); } if (reader.hasNext()) { token = reader.peek(); } else { break; } } }
From source file:org.wso2.carbon.governance.rest.api.internal.JSONMessageBodyReader.java
License:Open Source License
/** * Traverse through a json array and maps the array elements to a {@link Map} * * @param reader {@link JsonReader} * @return map with json array values mapped to key value pairs. * @throws IOException If unable to parse the json array. *///from w w w .ja v a 2 s . c om private Map<String, Object> handleArray(JsonReader reader) throws IOException { Map<String, Object> values = new HashMap<>(); reader.beginArray(); JsonToken token = reader.peek(); while (token != null) { if (token.equals(JsonToken.END_ARRAY)) { reader.endArray(); return values; } else { handleObject(reader, values, token, true); } token = reader.peek(); } return values; }
From source file:pl.softech.gw.json.TaskGsonTypeAdapter.java
License:Apache License
@Override public ITask read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull();/*from w w w . j a v a2 s . com*/ return null; } reader.beginObject(); TaskInstanceCreator instanceCreator = new TaskInstanceCreator(); while (reader.peek() != JsonToken.END_OBJECT) { String name = reader.nextName(); Object value; if (reader.peek() == JsonToken.BEGIN_OBJECT && !name.equals("module")) { value = read(reader); } else { if (name.equals("module")) { value = gson.getAdapter(ProjectModule.class).read(reader); } else { value = reader.nextString(); } } if (name.equals("class")) { instanceCreator.className = value.toString(); } else { instanceCreator.params.put(name, new Param(name, value)); } } reader.endObject(); return instanceCreator.create(); }
From source file:ro.cosu.vampires.server.util.gson.LowercaseEnumTypeAdapterFactory.java
License:Open Source License
@SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { Class<T> rawType = (Class<T>) type.getRawType(); if (!rawType.isEnum()) { return null; }//from w w w .ja v a2 s . c o m final Map<String, T> lowercaseToConstant = new HashMap<String, T>(); for (T constant : rawType.getEnumConstants()) { lowercaseToConstant.put(toLowercase(constant), constant); } return new TypeAdapter<T>() { public void write(JsonWriter out, T value) throws IOException { if (value == null) { out.nullValue(); } else { out.value(toLowercase(value)); } } public T read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } else { return lowercaseToConstant.get(reader.nextString()); } } }; }
From source file:ru.orangesoftware.financisto2.export.flowzr.FlowzrSyncEngine.java
License:Open Source License
public <T> int readMessage(JsonReader reader, String tableName, Class<T> clazz, long last_sync_ts) throws IOException, JSONException, Exception { String n = null;/*from ww w . ja va2 s.c om*/ int i = 0; while (reader.hasNext()) { JsonToken peek = reader.peek(); String v = null; if (peek == JsonToken.BEGIN_OBJECT) { reader.beginObject(); } else if (peek == JsonToken.NAME) { n = reader.nextName(); } else if (peek == JsonToken.BEGIN_ARRAY) { if (n.equals(tableName)) { i = readJsnArr(reader, tableName, clazz); } else { if (n.equals("params")) { reader.beginArray(); if (reader.hasNext()) { reader.beginObject(); if (reader.hasNext()) { n = reader.nextName(); v = reader.nextString(); } reader.endObject(); } reader.endArray(); } else { reader.skipValue(); } } } else if (peek == JsonToken.END_OBJECT) { reader.endObject(); } else if (peek == JsonToken.END_ARRAY) { reader.endArray(); } } return i; }
From source file:ru.orangesoftware.financisto2.export.flowzr.FlowzrSyncEngine.java
License:Open Source License
public <T> int readJsnArr(JsonReader reader, String tableName, Class<T> clazz) throws IOException, JSONException, Exception { JSONObject o = new JSONObject(); JsonToken peek = reader.peek(); String n = null;//from w w w . ja v a 2 s. c o m reader.beginArray(); int j = 0; int i = 0; while (reader.hasNext()) { peek = reader.peek(); if (reader.peek() == JsonToken.BEGIN_OBJECT) { reader.beginObject(); } else if (reader.peek() == JsonToken.END_OBJECT) { reader.endObject(); } o = new JSONObject(); while (reader.hasNext()) { peek = reader.peek(); if (peek == JsonToken.NAME) { n = reader.nextName(); } else if (peek == JsonToken.BEGIN_OBJECT) { reader.beginObject(); } else if (peek == JsonToken.END_OBJECT) { reader.endObject(); } else if (peek == JsonToken.BOOLEAN) { try { o.put(n, reader.nextBoolean()); } catch (JSONException e) { e.printStackTrace(); } } else if (peek == JsonToken.STRING) { try { o.put(n, reader.nextString()); } catch (JSONException e) { e.printStackTrace(); } } else if (peek == JsonToken.NUMBER) { try { o.put(n, reader.nextDouble()); } catch (JSONException e) { e.printStackTrace(); } } } reader.endObject(); if (o.has("key")) { i = i + 1; j = j + 1; if (j % 100 == 0) { j = 2; } saveEntityFromJson(o, tableName, clazz, i); if (i % 10 == 0) { flowzrSyncActivity.notifyUser( flowzrSyncActivity.getString(R.string.flowzr_sync_receiving) + " " + tableName + ". " + flowzrSyncActivity.getString(R.string.hint_run_background), (int) (Math.round(j))); } } } reader.endArray(); return i; }
From source file:se.sics.datamodel.client.gson.CGetObjAdapter.java
License:Open Source License
@Override public CGetObj read(JsonReader reader) throws IOException { Gson gson = CGsonHelper.getGson();/*w w w .j av a 2s . co m*/ reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) { throw new IOException(); } ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) { throw new IOException(); } ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("objId")) { throw new IOException(); } ByteId objId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); reader.endObject(); return new CGetObj(Triplet.with(dbId, typeId, objId)); }
From source file:se.sics.datamodel.client.gson.CGetTypeAdapter.java
License:Open Source License
@Override public CGetType read(JsonReader reader) throws IOException { Gson gson = CGsonHelper.getGson();/* w ww .j a va 2 s .c om*/ reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) { throw new IOException(); } ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) { throw new IOException(); } ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); reader.endObject(); return new CGetType(Pair.with(dbId, typeId)); }
From source file:se.sics.datamodel.client.gson.CPutObjAdapter.java
License:Open Source License
@Override public CPutObj read(JsonReader reader) throws IOException { Gson gson = CGsonHelper.getGson();/*from w w w. j a v a 2s. c o m*/ reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) { throw new IOException(); } ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) { throw new IOException(); } ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("objId")) { throw new IOException(); } ByteId objId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("obj")) { throw new IOException(); } ValueHolder vh = gson.fromJson(reader, ValueHolder.class); reader.endObject(); return new CPutObj(Triplet.with(dbId, typeId, objId), vh); }
From source file:se.sics.datamodel.client.gson.CPutTypeAdapter.java
License:Open Source License
@Override public CPutType read(JsonReader reader) throws IOException { Gson gson = CGsonHelper.getGson();//from w ww. jav a 2 s. c o m reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) { throw new IOException(); } ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) { throw new IOException(); } ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeInfo")) { throw new IOException(); } TypeInfo typeInfo = gson.fromJson(reader, TypeInfo.class); reader.endObject(); return new CPutType(Pair.with(dbId, typeId), typeInfo); }