List of usage examples for com.google.gson.stream JsonReader peek
public JsonToken peek() throws IOException
From source file:com.greensopinion.finance.services.persistence.CategoriesTypeAdapter.java
License:Apache License
@Override public Categories read(JsonReader reader) throws IOException { reader.beginObject();/*from w w w . ja v a 2 s. c o m*/ checkState(NAME_CATEGORIES.equals(reader.nextName())); reader.beginArray(); ImmutableList.Builder<Category> elements = ImmutableList.<Category>builder(); while (reader.hasNext()) { if (reader.peek() == JsonToken.BEGIN_OBJECT) { elements.add(gson.getAdapter(Category.class).read(reader)); } else { elements.add(readCategory(reader.nextString())); } } reader.endArray(); reader.endObject(); return new Categories(elements.build()); }
From source file:com.greensopinion.finance.services.persistence.DateTypeAdapter.java
License:Apache License
@Override public Date read(JsonReader reader) throws IOException { if (reader.peek().equals(JsonToken.NULL)) { reader.nextNull();/*from w w w. j a v a 2 s . c o m*/ return null; } String value = reader.nextString(); try { return dateFormat().parse(value); } catch (ParseException e) { throw new IOException(format("Expected a date but got \"{0}\"", value)); } }
From source file:com.gs.reladomo.serial.gson.GsonWrappedListTypedAdapter.java
License:Apache License
@Override public SerializedList<U, T> read(JsonReader jsonReader) throws IOException { ReladomoDeserializer deserializer;//from w ww . jav a 2s.c o m if (this.typeClass == null) { deserializer = new ReladomoDeserializer(); } else { deserializer = new ReladomoDeserializer(typeClass); } deserializer.setIgnoreUnknown(); JsonDeserializerState state = JsonDeserializerState.ListStartState.INSTANCE; while (true) { JsonToken nextToken = jsonReader.peek(); //BEGIN_ARRAY, END_ARRAY, BEGIN_OBJECT, END_OBJECT, NAME, STRING, NUMBER, BOOLEAN, NULL, END_DOCUMENT; if (JsonToken.BEGIN_OBJECT == nextToken) { jsonReader.beginObject(); state = state.startObject(deserializer); } else if (JsonToken.END_OBJECT == nextToken) { jsonReader.endObject(); state = state.endObject(deserializer); } else if (JsonToken.BEGIN_ARRAY == nextToken) { jsonReader.beginArray(); state = state.startArray(deserializer); } else if (JsonToken.END_ARRAY == nextToken) { jsonReader.endArray(); state = state.endArray(deserializer); } else if (JsonToken.BOOLEAN == nextToken) { if (jsonReader.nextBoolean()) { state = state.valueTrue(deserializer); } else { state = state.valueFalse(deserializer); } } else if (JsonToken.NAME == nextToken) { String name = jsonReader.nextName(); state = state.fieldName(name, deserializer); } else if (JsonToken.NUMBER == nextToken) { String value = jsonReader.nextString(); state = state.valueString(value, deserializer); // we do the parsing to avoid precision loss } else if (JsonToken.STRING == nextToken) { String value = jsonReader.nextString(); Attribute attribute = deserializer.getCurrentAttribute(); if (attribute instanceof TimestampAttribute) { Timestamp timestamp = GsonReladomoTypeAdapterSerialWriter.jsonToTimestamp(value); state = state.valueTimestamp(timestamp, deserializer); } else { state = state.valueString(value, deserializer); } } else if (JsonToken.NULL == nextToken) { jsonReader.nextNull(); state = state.valueNull(deserializer); } else if (JsonToken.END_DOCUMENT == nextToken) { break; } } return deserializer.getDeserializedResultAsList(); }
From source file:com.gs.reladomo.serial.gson.GsonWrappedTypedAdapter.java
License:Apache License
@Override public Serialized<T> read(JsonReader jsonReader) throws IOException { ReladomoDeserializer deserializer;//from w w w .ja v a 2 s. c o m if (this.typeClass == null) { deserializer = new ReladomoDeserializer(); } else { deserializer = new ReladomoDeserializer(typeClass); } deserializer.setIgnoreUnknown(); JsonDeserializerState state = JsonDeserializerState.NormalParserState.INSTANCE; while (true) { JsonToken nextToken = jsonReader.peek(); //BEGIN_ARRAY, END_ARRAY, BEGIN_OBJECT, END_OBJECT, NAME, STRING, NUMBER, BOOLEAN, NULL, END_DOCUMENT; if (JsonToken.BEGIN_OBJECT == nextToken) { jsonReader.beginObject(); state = state.startObject(deserializer); } else if (JsonToken.END_OBJECT == nextToken) { jsonReader.endObject(); state = state.endObject(deserializer); } else if (JsonToken.BEGIN_ARRAY == nextToken) { jsonReader.beginArray(); state = state.startArray(deserializer); } else if (JsonToken.END_ARRAY == nextToken) { jsonReader.endArray(); state = state.endArray(deserializer); } else if (JsonToken.BOOLEAN == nextToken) { if (jsonReader.nextBoolean()) { state = state.valueTrue(deserializer); } else { state = state.valueFalse(deserializer); } } else if (JsonToken.NAME == nextToken) { String name = jsonReader.nextName(); state = state.fieldName(name, deserializer); } else if (JsonToken.NUMBER == nextToken) { String value = jsonReader.nextString(); state = state.valueString(value, deserializer); // we do the parsing to avoid precision loss } else if (JsonToken.STRING == nextToken) { String value = jsonReader.nextString(); Attribute attribute = deserializer.getCurrentAttribute(); if (attribute instanceof TimestampAttribute) { Timestamp timestamp = GsonReladomoTypeAdapterSerialWriter.jsonToTimestamp(value); state = state.valueTimestamp(timestamp, deserializer); } else { state = state.valueString(value, deserializer); } } else if (JsonToken.NULL == nextToken) { jsonReader.nextNull(); state = state.valueNull(deserializer); } else if (JsonToken.END_DOCUMENT == nextToken) { break; } } return deserializer.getDeserializedResult(); }
From source file:com.ibm.og.json.type.ContainerConfigTypeAdapterFactory.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(final Gson gson, final TypeToken<T> type) { final Class<T> rawType = (Class<T>) type.getRawType(); if (!ContainerConfig.class.equals(rawType)) { return null; }/*from www .ja v a2 s. c om*/ final TypeAdapter<T> delegate = gson.getDelegateAdapter(this, type); return new TypeAdapter<T>() { @Override public void write(final JsonWriter out, final T value) throws IOException { delegate.write(out, value); } @Override public T read(final JsonReader in) throws IOException { if (JsonToken.STRING == in.peek()) { return (T) new ContainerConfig(in.nextString()); } return delegate.read(in); } }.nullSafe(); }
From source file:com.ibm.og.json.type.FilesizeConfigTypeAdapterFactory.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(final Gson gson, final TypeToken<T> type) { final Class<T> rawType = (Class<T>) type.getRawType(); if (!FilesizeConfig.class.equals(rawType)) { return null; }// ww w . ja va2 s. c o m final TypeAdapter<T> delegate = gson.getDelegateAdapter(this, type); return new TypeAdapter<T>() { @Override public void write(final JsonWriter out, final T value) throws IOException { delegate.write(out, value); } @Override public T read(final JsonReader in) throws IOException { if (JsonToken.NUMBER == in.peek()) { return (T) new FilesizeConfig(in.nextDouble()); } return delegate.read(in); } }.nullSafe(); }
From source file:com.ibm.og.json.type.OperationConfigTypeAdapterFactory.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(final Gson gson, final TypeToken<T> type) { final Class<T> rawType = (Class<T>) type.getRawType(); if (!OperationConfig.class.equals(rawType)) { return null; }//from w w w. j a v a 2s .co m final TypeAdapter<T> delegate = gson.getDelegateAdapter(this, type); return new TypeAdapter<T>() { @Override public void write(final JsonWriter out, final T value) throws IOException { delegate.write(out, value); } @Override public T read(final JsonReader in) throws IOException { if (JsonToken.NUMBER == in.peek()) { return (T) new OperationConfig(in.nextDouble()); } return delegate.read(in); } }.nullSafe(); }
From source file:com.ibm.watson.developer_cloud.alchemy.v1.util.ImageKeywordTypeAdapter.java
License:Open Source License
@Override public ImageKeyword read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull();/* www . j a v a2 s. c o m*/ return null; } final ImageKeyword ImageKeyword = new ImageKeyword(); reader.beginObject(); while (reader.hasNext()) { final String name = reader.nextName(); if (name.equals("text")) { final String text = reader.nextString(); ImageKeyword.setText(text); } else if (name.equals("score")) { final String score = reader.nextString(); if (score != null && !score.isEmpty()) ImageKeyword.setScore(Double.valueOf(score)); } else { reader.skipValue(); } } reader.endObject(); return ImageKeyword; }
From source file:com.ibm.watson.developer_cloud.alchemy.v1.util.PublicationDateTypeAdapter.java
License:Open Source License
@Override public PublicationDate read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull();//from w ww.j a v a2 s .c o m return null; } final PublicationDate publicationDate = new PublicationDate(); publicationDate.setConfident(true); reader.beginObject(); while (reader.hasNext()) { final String name = reader.nextName(); if (name.equals("confident")) { final String confidentAsString = reader.nextString(); publicationDate.setConfident(confidentAsString == null || !confidentAsString.equals("no")); } else if (name.equals("date")) { final String dateAsString = reader.nextString(); if (dateAsString != null && !dateAsString.isEmpty()) try { publicationDate.setDate(df.parse(dateAsString)); } catch (final ParseException e) { log.log(Level.SEVERE, "Error parsing: " + dateAsString, e); } } else { reader.skipValue(); } } reader.endObject(); return publicationDate; }
From source file:com.ibm.watson.developer_cloud.alchemy.v1.util.TaxonomyTypeAdapter.java
License:Open Source License
@Override public Taxonomy read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull();/*from w ww . j a v a 2 s . c o m*/ return null; } final Taxonomy taxonomy = new Taxonomy(); taxonomy.setConfident(true); reader.beginObject(); while (reader.hasNext()) { final String name = reader.nextName(); if (name.equals("confident")) { final String confidentAsString = reader.nextString(); taxonomy.setConfident(confidentAsString == null || !confidentAsString.equals("no")); } else if (name.equals("label")) { final String label = reader.nextString(); taxonomy.setLabel(label); } else if (name.equals("score")) { final Double score = reader.nextDouble(); taxonomy.setScore(score); } else { reader.skipValue(); } } reader.endObject(); return taxonomy; }