List of usage examples for com.google.gson.stream JsonReader peek
public JsonToken peek() throws IOException
From source file:com.dracade.ember.core.adapters.ClassAdapter.java
License:Open Source License
@Override public Class read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { return null; }//from ww w.ja v a2 s . c om in.beginObject(); in.nextName(); in.nextString(); in.nextName(); Class c = null; try { c = Class.forName(in.nextString()); } catch (ClassNotFoundException e) { e.printStackTrace(); } in.endObject(); return c; }
From source file:com.dracade.ember.core.adapters.WorldAdapter.java
License:Open Source License
@Override public World read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { return null; }//from ww w .ja v a2 s .c om in.beginObject(); in.nextName(); in.nextString(); in.nextName(); Optional<World> optional = Ember.game().getServer().getWorld(UUID.fromString(in.nextString())); in.endObject(); return optional.isPresent() ? optional.get() : null; }
From source file:com.ecwid.mailchimp.internal.gson.MailChimpObjectTypeAdapter.java
License:Apache License
@Override public MailChimpObject read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull();//from w w w . j ava 2s . c o m return null; } MailChimpObject result; try { result = constructor.newInstance(); } catch (Exception e) { throw new RuntimeException("Failed to invoke " + constructor + " with no args", e); } in.beginObject(); while (in.hasNext()) { final String key; if (in.peek() == JsonToken.NAME) { key = in.nextName(); } else { key = in.nextString(); } final Object value; Type valueType = result.getReflectiveMappingTypes().get(key); if (valueType != null) { value = gson.getAdapter(TypeToken.get(valueType)).read(in); } else { if (in.peek() == JsonToken.BEGIN_OBJECT) { value = gson.getAdapter(MailChimpObject.class).read(in); } else if (in.peek() == JsonToken.BEGIN_ARRAY) { value = readList(in); } else { value = gson.getAdapter(Object.class).read(in); } } if (result.put(key, value) != null) { throw new JsonSyntaxException("duplicate key: " + key); } } in.endObject(); return result; }
From source file:com.ecwid.mailchimp.internal.gson.MailChimpObjectTypeAdapter.java
License:Apache License
private List<?> readList(JsonReader in) throws IOException { List<Object> result = new ArrayList<Object>(); in.beginArray();// w ww . j a va 2 s .co m while (in.peek() != JsonToken.END_ARRAY) { final Object element; if (in.peek() == JsonToken.BEGIN_OBJECT) { element = gson.getAdapter(MailChimpObject.class).read(in); } else if (in.peek() == JsonToken.BEGIN_ARRAY) { element = readList(in); } else { element = gson.getAdapter(Object.class).read(in); } result.add(element); } in.endArray(); return result; }
From source file:com.flipkart.batchdemo.adapter.CustomTagDataAdapter.java
License:Open Source License
@Override public CustomTagData read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();/*from w ww . j ava 2s .c o m*/ return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); Tag tag = null; Long eventId = 0L; JSONObject event = null; while (reader.hasNext()) { String name = reader.nextName(); com.google.gson.stream.JsonToken jsonToken = reader.peek(); if (jsonToken == com.google.gson.stream.JsonToken.NULL) { reader.skipValue(); continue; } switch (name) { case "tag": tag = tagTypeAdapter.read(reader); break; case "eventId": eventId = BatchingTypeAdapters.LONG.read(reader); break; case "event": event = BatchingTypeAdapters.getJSONObjectTypeAdapter(gson).read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); CustomTagData customTagData = new CustomTagData(tag, event); customTagData.setEventId(eventId); return customTagData; }
From source file:com.flipkart.batching.gson.adapters.batch.SizeBatchTypeAdapter.java
License:Open Source License
@Override public SizeBatch<T> read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();// w ww .j av a 2s . c o m return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); int maxBatchSize = 0; DataCollection<T> dataCollection = null; while (reader.hasNext()) { String name = reader.nextName(); com.google.gson.stream.JsonToken jsonToken = reader.peek(); if (jsonToken == com.google.gson.stream.JsonToken.NULL) { reader.skipValue(); continue; } switch (name) { case "maxBatchSize": maxBatchSize = BatchingTypeAdapters.INTEGER.read(reader); break; case "dataCollection": dataCollection = typeAdapter.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return dataCollection == null ? null : new SizeBatch<>(dataCollection.dataCollection, maxBatchSize); }
From source file:com.flipkart.batching.gson.adapters.batch.SizeTimeBatchTypeAdapter.java
License:Open Source License
@Override public SizeTimeBatch<T> read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();//from www .j a v a 2 s.co m return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); int maxBatchSize = 0; DataCollection<T> dataCollection = null; long timeout = 0L; while (reader.hasNext()) { String name = reader.nextName(); com.google.gson.stream.JsonToken jsonToken = reader.peek(); if (jsonToken == com.google.gson.stream.JsonToken.NULL) { reader.skipValue(); continue; } switch (name) { case "maxBatchSize": maxBatchSize = BatchingTypeAdapters.INTEGER.read(reader); break; case "dataCollection": dataCollection = typeAdapter.read(reader); break; case "timeOut": timeout = BatchingTypeAdapters.LONG.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return dataCollection == null ? null : new SizeTimeBatch<>(dataCollection.dataCollection, maxBatchSize, timeout); }
From source file:com.flipkart.batching.gson.adapters.batch.TagBatchTypeAdapter.java
License:Open Source License
@Override public TagBatch<T> read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();/*from w ww . ja va2s. com*/ return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); Tag tag = null; DataCollection<T> collection = null; while (reader.hasNext()) { String name = reader.nextName(); com.google.gson.stream.JsonToken jsonToken = reader.peek(); if (jsonToken == com.google.gson.stream.JsonToken.NULL) { reader.skipValue(); continue; } switch (name) { case "tag": tag = tagTypeAdapter.read(reader); break; case "dataCollection": collection = typeAdapter.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return collection == null || tag == null ? null : new TagBatch<>(tag, new BatchImpl<>(collection.dataCollection)); }
From source file:com.flipkart.batching.gson.adapters.batch.TimeBatchTypeAdapter.java
License:Open Source License
@Override public TimeBatch<T> read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();/* w w w . j av a 2 s. co m*/ return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); long timeOut = 0L; DataCollection<T> dataCollection = null; while (reader.hasNext()) { String name = reader.nextName(); com.google.gson.stream.JsonToken jsonToken = reader.peek(); if (jsonToken == com.google.gson.stream.JsonToken.NULL) { reader.skipValue(); continue; } switch (name) { case "timeOut": timeOut = BatchingTypeAdapters.LONG.read(reader); break; case "dataCollection": dataCollection = typeAdapter.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return dataCollection == null ? null : new TimeBatch<>(dataCollection.dataCollection, timeOut); }
From source file:com.flipkart.batching.gson.adapters.BatchImplTypeAdapter.java
License:Open Source License
@Override public BatchImpl<T> read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();/*w ww .j a v a 2 s . co m*/ return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); DataCollection<T> dataCollection = null; while (reader.hasNext()) { String name = reader.nextName(); com.google.gson.stream.JsonToken jsonToken = reader.peek(); if (jsonToken == com.google.gson.stream.JsonToken.NULL) { reader.skipValue(); continue; } switch (name) { case "dataCollection": dataCollection = typeAdapter.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return dataCollection == null ? null : new BatchImpl<T>(dataCollection.dataCollection); }