List of usage examples for com.google.gson.stream JsonReader peek
public JsonToken peek() throws IOException
From source file:se.sics.datamodel.client.gson.CQueryObjAdapter.java
License:Open Source License
@Override public CQueryObj read(JsonReader reader) throws IOException { Gson gson = CGsonHelper.getGson();// w ww. j a v a 2s . com 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("indexId")) { throw new IOException(); } ByteId indexId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("indexVal")) { throw new IOException(); } QueryTypeHolder indexVal = gson.fromJson(reader, QueryTypeHolder.class); reader.endObject(); return new CQueryObj(Pair.with(dbId, typeId), indexId, indexVal); }
From source file:se.sics.datamodel.client.gson.CQueryTypeAdapter.java
License:Open Source License
@Override public QueryTypeHolder read(JsonReader reader) throws IOException { Gson gson = CGsonHelper.getGson();//from ww w. j a va 2s .co m reader.beginObject(); if (reader.peek() != JsonToken.NAME) { throw new IOException(); } String queryType = reader.nextName(); if (queryType.equals("is")) { JsonElement je = gson.fromJson(reader, JsonElement.class); return new FieldIsHolder(je); } else if (queryType.equals("from")) { JsonElement jeFrom = gson.fromJson(reader, JsonElement.class); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("to")) { throw new IOException(); } JsonElement jeTo = gson.fromJson(reader, JsonElement.class); return new FieldScanHolder(jeFrom, jeTo); } else { throw new IOException("unknown query type"); } }
From source file:se.sics.datamodel.gson.TypeInfoAdapter.java
License:Open Source License
@Override public TypeInfo read(JsonReader reader) throws IOException { String typeName;/*from ww w. j a v a2s .co m*/ Gson gson = GsonHelper.getGson(); reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeName")) { throw new IOException(); } typeName = reader.nextString(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("fieldMap")) { throw new IOException(); } if (reader.peek() != JsonToken.BEGIN_ARRAY) { throw new IOException(); } reader.beginArray(); TypeInfo.Builder tiBuilder = new TypeInfo.Builder(typeName); while (reader.peek() != JsonToken.END_ARRAY) { if (reader.peek() != JsonToken.BEGIN_OBJECT) { throw new IOException(); } reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("id")) { throw new IOException(); } ByteId fieldId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("field")) { throw new IOException(); } FieldInfo fieldInfo = gson.fromJson(reader, FieldInfo.class); tiBuilder.put(fieldId, fieldInfo); reader.endObject(); } reader.endArray(); reader.endObject(); return tiBuilder.build(); }
From source file:se.sics.datamodel.gson.TypeInfoAdapter.java
License:Open Source License
private FieldInfo readFieldInfo(JsonReader reader) throws IOException { String fieldName;/*from w ww .ja v a 2 s. c o m*/ FieldType fieldType; Boolean indexed; Gson gson = GsonHelper.getGson(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("name")) { throw new IOException(); } fieldName = gson.fromJson(reader, String.class); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("type")) { throw new IOException(); } fieldType = gson.fromJson(reader, FieldType.class); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("indexed")) { throw new IOException(); } indexed = gson.fromJson(reader, Boolean.class); return new FieldInfo(fieldName, fieldType, indexed); }
From source file:se.sics.datamodel.gson.ValueHolderAdapter.java
License:Open Source License
@Override public ValueHolder read(JsonReader reader) throws IOException { Gson gson = GsonHelper.getGson();/* w ww .ja v a 2 s .c o m*/ ValueHolder.Builder vhBuilder = new ValueHolder.Builder(); if (reader.peek() != JsonToken.BEGIN_OBJECT) { throw new IOException(); } reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("fieldMap")) { throw new IOException(); } if (reader.peek() != JsonToken.BEGIN_ARRAY) { throw new IOException(); } reader.beginArray(); while (reader.peek() != JsonToken.END_ARRAY) { if (reader.peek() != JsonToken.BEGIN_OBJECT) { throw new IOException(); } reader.beginObject(); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("id")) { throw new IOException(); } ByteId fieldId = new ByteId((byte[]) gson.fromJson(reader, byte[].class)); if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("field")) { throw new IOException(); } JsonElement je = gson.fromJson(reader, JsonElement.class); vhBuilder.put(fieldId, je); if (reader.peek() != JsonToken.END_OBJECT) { throw new IOException(); } reader.endObject(); } reader.endArray(); reader.endObject(); return vhBuilder.build(); }
From source file:sf.net.experimaestro.manager.json.JsonConverter.java
License:Open Source License
@Override public Json convertToEntityAttribute(String dbData) { final JsonReader jsonReader = new JsonReader(new StringReader(dbData)); try {/*from ww w. ja va 2s.c o m*/ final Json json = readNext(jsonReader); if (jsonReader.peek() != JsonToken.END_DOCUMENT) { throw new RuntimeException("Expected end of document"); } return json; } catch (IOException e) { LOGGER.error(e, "Error while reading JSON string [%s]", dbData); throw new RuntimeException(e); } catch (RuntimeException e) { LOGGER.error(e, "Error while reading JSON string [%s]", dbData); throw e; } }
From source file:sf.net.experimaestro.manager.json.JsonConverter.java
License:Open Source License
private Json readNext(JsonReader jsonReader) throws IOException { final JsonToken token = jsonReader.peek(); switch (token) { case BEGIN_ARRAY: { jsonReader.beginArray();//from w w w .jav a2 s . c o m JsonArray array = new JsonArray(); while (jsonReader.peek() != JsonToken.END_ARRAY) { array.add(readNext(jsonReader)); } jsonReader.endArray(); return array; } case BEGIN_OBJECT: { jsonReader.beginObject(); JsonObject object = new JsonObject(); while (jsonReader.peek() != JsonToken.END_OBJECT) { final String name = jsonReader.nextName(); final Json value = readNext(jsonReader); object.put(name, value); } jsonReader.endObject(); return object; } case BOOLEAN: return new JsonBoolean(jsonReader.nextBoolean()); case STRING: return new JsonString(jsonReader.nextString()); case NULL: { jsonReader.nextNull(); return JsonNull.getSingleton(); } case NUMBER: return new JsonReal(jsonReader.nextDouble()); default: throw new RuntimeException("Cannot handle GSON token type: " + token.name()); } }
From source file:sf.net.experimaestro.utils.gson.JsonAdapter.java
License:Open Source License
private Json readValue(JsonReader in) throws IOException { final JsonToken peek = in.peek(); switch (peek) { case BEGIN_ARRAY: in.beginArray();/*from w w w. j a v a2 s . c om*/ JsonArray array = new JsonArray(); while (in.peek() != JsonToken.END_ARRAY) { array.add(readValue(in)); } in.endArray(); return array; case BEGIN_OBJECT: in.beginObject(); JsonObject object = new JsonObject(); while (in.peek() != JsonToken.END_OBJECT) { final String name = in.nextName(); final Json value = readValue(in); object.put(name, value); } in.endObject(); return object; case BOOLEAN: return new JsonBoolean(in.nextBoolean()); case NUMBER: final double value = in.nextDouble(); if (value == Math.round(value)) return new JsonInteger((long) value); return new JsonReal(value); case STRING: return new JsonString(in.nextString()); case NULL: return JsonNull.getSingleton(); case NAME: case END_OBJECT: case END_ARRAY: case END_DOCUMENT: throw new AssertionError("Not expecting " + peek); } return null; }
From source file:teste.adapter.ArrayAdapter.java
public List<T> read(JsonReader reader) throws IOException { List<T> list = new ArrayList<T>(); Gson gson = new GsonBuilder().registerTypeAdapterFactory(new ArrayAdapterFactory()).create(); if (reader.peek() == JsonToken.BEGIN_OBJECT) { T inning = gson.fromJson(reader, adapterclass); list.add(inning);// ww w . ja v a2s .c o m } else if (reader.peek() == JsonToken.BEGIN_ARRAY) { reader.beginArray(); while (reader.hasNext()) { T inning = gson.fromJson(reader, adapterclass); list.add(inning); } reader.endArray(); } return list; }