List of usage examples for com.google.gson.stream JsonReader nextNull
public void nextNull() throws IOException
From source file:com.flipkart.batching.gson.adapters.data.TagTypeAdapter.java
License:Open Source License
@Override public Tag read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull(); return null; }// w w w. j av a 2 s. c om if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); String id = 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 "id": id = com.google.gson.internal.bind.TypeAdapters.STRING.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return id == null ? null : new Tag(id); }
From source file:com.flipkart.batching.gson.adapters.DataCollectionTypeAdapter.java
License:Open Source License
@Override public DataCollection<T> read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull(); return null; }/* w w w. j a va 2 s. c o m*/ if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); Collection<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 "dataCollection": collection = collectionTypeAdapter.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return null != collection ? new DataCollection<>(collection) : null; }
From source file:com.flipkart.batching.gson.RuntimeTypeAdapterFactory.java
License:Open Source License
public <R> TypeAdapter<R> create(Gson gson, TypeToken<R> type) { if (type.getRawType() != baseType) { return null; }/*from w w w .j av a 2 s. co m*/ final Map<String, TypeAdapter<?>> labelToDelegate = new LinkedHashMap<>(); final Map<Class<?>, TypeAdapter<?>> subtypeToDelegate = new LinkedHashMap<>(); for (Map.Entry<String, Class<?>> entry : labelToSubtype.entrySet()) { TypeAdapter<?> delegate = labelToTypeAdapter.get(entry.getKey()); if (delegate == null) { delegate = gson.getDelegateAdapter(this, TypeToken.get(entry.getValue())); } labelToDelegate.put(entry.getKey(), delegate); subtypeToDelegate.put(entry.getValue(), delegate); } return new TypeAdapter<R>() { @Override public R read(JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull(); return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); String label = null; R result = 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 "type": label = TypeAdapters.STRING.read(reader); break; case "value": @SuppressWarnings("unchecked") // registration requires that subtype extends T TypeAdapter<R> delegate = label == null ? null : (TypeAdapter<R>) labelToDelegate.get(label); if (delegate == null) { throw new JsonParseException("cannot deserialize " + baseType + " subtype named " + label + "; did you forget to register a subtype?"); } result = delegate.read(reader); break; default: reader.skipValue(); break; } } reader.endObject(); return result; } @Override public void write(JsonWriter out, R value) throws IOException { Class<?> srcType = value.getClass(); @SuppressWarnings("unchecked") // registration requires that subtype extends T TypeAdapter<R> delegate = (TypeAdapter<R>) subtypeToDelegate.get(srcType); if (delegate == null) { throw new JsonParseException( "cannot serialize " + srcType.getName() + "; did you forget to register a subtype?"); } String label = subtypeToLabel.get(srcType); out.beginObject(); out.name("type"); out.value(label); out.name("value"); delegate.write(out, value); out.endObject(); } }.nullSafe(); }
From source file:com.gilecode.yagson.adapters.TypeAdvisableComplexTypeAdapter.java
License:Apache License
public T read(JsonReader in, ReadContext ctx) throws IOException { JsonToken nextToken = in.peek();/*from ww w. j av a 2 s .c o m*/ if (nextToken == JsonToken.NULL) { in.nextNull(); return null; } else if (nextToken == JsonToken.STRING) { // for complex type adapters, each string is a reference, no isReferenceString() match required String reference = in.nextString(); T referenced = ctx.refsContext().getReferencedObject(reference); return referenced; } return readOptionallyAdvisedInstance(in, ctx); }
From source file:com.github.filosganga.geogson.gson.PositionsAdapter.java
License:Apache License
@Override public Positions read(JsonReader in) throws IOException { Positions parsed;//from w w w .jav a 2s. c om JsonToken peek = in.peek(); if (peek == JsonToken.NULL) { in.nextNull(); parsed = null; } else if (peek == JsonToken.BEGIN_ARRAY) { parsed = parsePositions(in); } else { throw new IllegalArgumentException("The json must be an array or null: " + in.peek()); } return parsed; }
From source file:com.github.gv2011.jsong.JsongAdapter.java
License:Open Source License
private JsonNode deserialize(final JsonFactoryImp jf, final JsonReader in) { return call(() -> { switch (in.peek()) { case STRING: return jf.primitive(in.nextString()); case NUMBER: return jf.primitive(new BigDecimal(in.nextString())); case BOOLEAN: return jf.primitive(in.nextBoolean()); case NULL: in.nextNull(); return jf.jsonNull(); case BEGIN_ARRAY: in.beginArray();//from w ww . j ava2 s .c o m final JsonList list = XStream.fromIterator(new It(jf, in)).collect(jf.toJsonList()); in.endArray(); return list; case BEGIN_OBJECT: in.beginObject(); final JsonObject obj = XStream.fromIterator(new Itm(jf, in)).collect(jf.toJsonObject()); in.endObject(); return obj; case NAME: case END_DOCUMENT: case END_OBJECT: case END_ARRAY: default: throw new IllegalArgumentException(); } }); }
From source file:com.github.kevinsawicki.halligan.Resource.java
License:Open Source License
/** * Parse resource property// w w w . j a v a 2 s .c om * * @param reader * @param name * @throws IOException */ protected void parseProperty(final JsonReader reader, final String name) throws IOException { JsonToken next = reader.peek(); switch (next) { case BEGIN_OBJECT: properties.put(name, gson.getGson().fromJson(reader, Map.class)); break; case STRING: properties.put(name, reader.nextString()); break; case NUMBER: properties.put(name, reader.nextDouble()); break; case NULL: properties.put(name, null); reader.nextNull(); break; case BOOLEAN: properties.put(name, reader.nextBoolean()); break; default: throw new IOException("Unrecognized property value token: " + next); } }
From source file:com.github.lindenb.gatkui.Json2Xml.java
License:Open Source License
private void parse(String label, JsonReader r) throws Exception { if (!r.hasNext()) return;//from ww w .j a va2 s .c o m JsonToken token = r.peek(); switch (token) { case NAME: break; case BEGIN_OBJECT: { r.beginObject(); parseObject(label, r); break; } case END_OBJECT: { break; } case BEGIN_ARRAY: { r.beginArray(); parseArray(label, r); break; } case END_ARRAY: { break; } case NULL: { r.nextNull(); w.writeEmptyElement(NS, "null"); if (label != null) w.writeAttribute("name", label); break; } case STRING: { w.writeStartElement(NS, "string"); if (label != null) w.writeAttribute("name", label); w.writeCharacters(r.nextString()); w.writeEndElement(); break; } case NUMBER: { w.writeStartElement(NS, "number"); if (label != null) w.writeAttribute("name", label); String s; try { s = String.valueOf(r.nextLong()); } catch (Exception err) { s = String.valueOf(r.nextDouble()); } w.writeCharacters(s); w.writeEndElement(); break; } case BOOLEAN: { w.writeStartElement(NS, "boolean"); if (label != null) w.writeAttribute("name", label); w.writeCharacters(String.valueOf(r.nextBoolean())); w.writeEndElement(); break; } case END_DOCUMENT: { break; } default: throw new IllegalStateException(token.name()); } }
From source file:com.github.riotopsys.malforandroid2.util.AnimeWatchedStatusTypeAdapter.java
License:Apache License
@Override public AnimeWatchedStatus read(JsonReader in) throws IOException { if (in.peek() != JsonToken.NULL) { return AnimeWatchedStatus.getByServerKey(in.nextString()); }//from w ww .j a v a2s . c om in.nextNull(); return null; }
From source file:com.github.riotopsys.malforandroid2.util.MangaReadStatusTypeAdapter.java
License:Apache License
@Override public MangaReadStatus read(JsonReader in) throws IOException { if (in.peek() != JsonToken.NULL) { return MangaReadStatus.getByServerKey(in.nextString()); }//w ww . j av a2 s. c o m in.nextNull(); return null; }