Example usage for com.google.gson.stream JsonReader nextNull

List of usage examples for com.google.gson.stream JsonReader nextNull

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader nextNull.

Prototype

public void nextNull() throws IOException 

Source Link

Document

Consumes the next token from the JSON stream and asserts that it is a literal null.

Usage

From source file:cn.ieclipse.af.demo.sample.volley.adapter.StringAdapter.java

License:Apache License

@Override
public String read(JsonReader reader) {
    String text = "";
    try {//  w w  w .j  a va 2  s. co m
        if (reader.peek() == JsonToken.NULL) {
            reader.nextNull();
            text = "";//Null
        } else {
            text = reader.nextString();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return text;
}

From source file:co.cask.cdap.common.io.CaseInsensitiveEnumTypeAdapterFactory.java

License:Apache License

public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
    @SuppressWarnings("unchecked")
    Class<T> rawType = (Class<T>) type.getRawType();
    if (!rawType.isEnum()) {
        return null;
    }//from  w  w w  .  j ava2s .  com

    final Map<String, T> lowercaseToConstant = new HashMap<>();
    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(toLowercase(reader.nextString()));
            }
        }
    };
}

From source file:co.cask.cdap.format.StructuredRecordStringConverter.java

License:Apache License

private static Object readJson(JsonReader reader, Schema schema) throws IOException {
    switch (schema.getType()) {
    case NULL:/*from w  w w.  j ava2  s  .c o m*/
        reader.nextNull();
        return null;
    case BOOLEAN:
        return reader.nextBoolean();
    case INT:
        return reader.nextInt();
    case LONG:
        return reader.nextLong();
    case FLOAT:
        // Force down cast
        return (float) reader.nextDouble();
    case DOUBLE:
        return reader.nextDouble();
    case BYTES:
        return readBytes(reader);
    case STRING:
        return reader.nextString();
    case ENUM:
        // Currently there is no standard container to represent enum type
        return reader.nextString();
    case ARRAY:
        return readArray(reader, schema.getComponentSchema());
    case MAP:
        return readMap(reader, schema.getMapSchema());
    case RECORD:
        return readRecord(reader, schema);
    case UNION:
        return readUnion(reader, schema);
    }

    throw new IOException("Unsupported schema: " + schema);
}

From source file:co.forsaken.projectindigo.utils.mojangtokens.EnumTypeAdapterFactory.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//  w  w w  .j a  v a 2 s .  c o m
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
    if (!type.getRawType().isEnum()) {
        return null;
    }
    final Map<String, T> map = new HashMap<String, T>();
    for (T c : (T[]) type.getRawType().getEnumConstants()) {
        map.put(c.toString().toLowerCase(Locale.US), c);
    }

    return new TypeAdapter<T>() {
        @Override
        public T read(JsonReader reader) throws IOException {
            if (reader.peek() == JsonToken.NULL) {
                reader.nextNull();
                return null;
            }
            String name = reader.nextString();
            if (name == null) {
                return null;
            }
            return map.get(name.toLowerCase(Locale.US));
        }

        @Override
        public void write(JsonWriter writer, T value) throws IOException {
            if (value == null) {
                writer.nullValue();
            } else {
                writer.value(value.toString().toLowerCase(Locale.US));
            }
        }
    };
}

From source file:com.aelitis.azureus.util.ObjectTypeAdapterLong.java

License:Apache License

@Override
public Object read(JsonReader in) throws IOException {
    JsonToken token = in.peek();//from   w ww . j  a  va 2  s .c  o m
    switch (token) {
    case BEGIN_ARRAY:
        List<Object> list = new ArrayList<Object>();
        in.beginArray();
        while (in.hasNext()) {
            list.add(read(in));
        }
        in.endArray();
        return list;

    case BEGIN_OBJECT:
        Map<String, Object> map = new LinkedTreeMap<String, Object>();
        in.beginObject();
        while (in.hasNext()) {
            map.put(in.nextName(), read(in));
        }
        in.endObject();
        return map;

    case STRING:
        return in.nextString();

    case NUMBER: {
        String value = in.nextString();
        if (value.indexOf('.') >= 0) {
            return Double.parseDouble(value);
        } else {
            return Long.parseLong(value);
        }
    }

    case BOOLEAN:
        return in.nextBoolean();

    case NULL:
        in.nextNull();
        return null;

    default:
        throw new IllegalStateException();
    }
}

From source file:com.antew.redditinpictures.library.gson.VoteAdapter.java

License:Apache License

@Override
public Vote read(JsonReader reader) throws IOException {
    if (reader.peek() == JsonToken.NULL) {
        reader.nextNull();
        return Vote.NEUTRAL;
    }/*from  w  ww .jav  a 2 s.  c  om*/

    return reader.nextBoolean() ? Vote.UP : Vote.DOWN;
}

From source file:com.atlauncher.workers.EnumTypeAdapterFactory.java

License:Creative Commons License

@Override
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
    if (!type.getRawType().isEnum())
        return null;
    final Map<String, T> map = new HashMap<String, T>();
    for (T c : (T[]) type.getRawType().getEnumConstants()) {
        map.put(c.toString().toLowerCase(Locale.US), c);
    }/*from  w  ww  .  ja  v  a2  s  . c  o  m*/

    return new TypeAdapter<T>() {
        @Override
        public T read(JsonReader reader) throws IOException {
            if (reader.peek() == JsonToken.NULL) {
                reader.nextNull();
                return null;
            }
            String name = reader.nextString();
            if (name == null)
                return null;
            return map.get(name.toLowerCase(Locale.US));
        }

        @Override
        public void write(JsonWriter writer, T value) throws IOException {
            if (value == null) {
                writer.nullValue();
            } else {
                writer.value(value.toString().toLowerCase(Locale.US));
            }
        }
    };
}

From source file:com.bzcentre.dapiPush.ReceipientTypeAdapter.java

License:Open Source License

@Override
public Receipient read(JsonReader in)
        throws IOException, IllegalStateException, JsonParseException, NumberFormatException {
    NginxClojureRT.log.debug(TAG + " invoked...");
    Receipient receipient = new Receipient();
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
    }/*from w  w w  . j a va2s. com*/

    in.beginObject();
    while (in.hasNext()) {
        switch (in.nextName()) {
        case "apns_token":
            if (in.peek() == JsonToken.NULL) {
                in.nextNull();
            } else
                receipient.setApns_Token(in.nextString());
            break;
        case "fcm_token":
            if (in.peek() == JsonToken.NULL) {
                in.nextNull();
            } else
                receipient.setFcm_Token(in.nextString());
            break;
        case "payload":
            receipient.setPayload(extractPayload(in));
            break;
        }
    }
    in.endObject();

    NginxClojureRT.log.debug(TAG + "Deserializing and adding receipient of "
            + (receipient.getApns_Token() == null ? "fcm--" + receipient.getFcm_Token()
                    : "apns--" + receipient.getApns_Token()));
    return receipient;
}

From source file:com.bzcentre.dapiPush.ReceipientTypeAdapter.java

License:Open Source License

private MeetingPayload extractPayload(JsonReader in)
        throws IOException, NumberFormatException, IllegalStateException, JsonParseException {
    NginxClojureRT.log.debug(TAG + "TypeAdapter extracting Payload...");

    MeetingPayload meetingPayload = new MeetingPayload();
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        throw new JsonParseException("null Payload");
    }//from   ww w.  ja va  2  s. c  o  m

    in.beginObject();
    while (in.hasNext()) {
        switch (in.nextName()) {
        case "aps":
            in.beginObject();
            while (in.hasNext()) {
                switch (in.nextName()) {
                case "badge":
                    meetingPayload.getAps().setBadge(in.nextLong());
                    break;
                case "sound":
                    meetingPayload.getAps().setSound(in.nextString());
                    break;
                case "alert":
                    in.beginObject();
                    while (in.hasNext()) {
                        switch (in.nextName()) {
                        case "title":
                            meetingPayload.getAps().getAlert().setTitle(in.nextString());
                            break;
                        case "body":
                            meetingPayload.getAps().getAlert().setBody(in.nextString());
                            break;
                        case "action-loc-key":
                            meetingPayload.getAps().getAlert().setActionLocKey(in.nextString());
                            break;
                        }
                    }
                    in.endObject();
                    break;
                }
            }
            in.endObject();
            break;
        case "dapi":
            meetingPayload.setDapi(in.nextString());
            break;
        case "acme1":
            meetingPayload.setAcme1(in.nextString());
            break;
        case "acme2":
            meetingPayload.setAcme2(in.nextLong());
            break;
        case "acme3":
            meetingPayload.setAcme3(in.nextLong());
            break;
        case "acme4":
            NginxClojureRT.log.info(TAG + "TypeAdapter Reader is reading acme4...");
            meetingPayload.setAcme4(in.nextLong());
            break;
        case "acme5":
            meetingPayload.setAcme5(in.nextLong());
            break;
        case "acme6":
            meetingPayload.setAcme6(in.nextLong());
            break;
        case "acme7":
            ArrayList<String> attendees = new ArrayList<>();
            in.beginArray();
            while (in.hasNext()) {
                attendees.add(in.nextString());
            }
            in.endArray();
            meetingPayload.setAcme7(attendees);
            break;
        case "acme8":
            meetingPayload.setAcme8(in.nextString());
            break;
        }
    }
    in.endObject();

    return meetingPayload;
}

From source file:com.cardinity.json.UtcDateTypeAdapter.java

License:Apache License

@Override
public Date read(JsonReader in) throws IOException {
    try {//from   www .ja va2 s  . com
        switch (in.peek()) {
        case NULL:
            in.nextNull();
            return null;
        default:
            String date = in.nextString();
            // Instead of using iso8601Format.parse(value), we use Jackson's date parsing
            // This is because Android doesn't support XXX because it is JDK 1.6
            return parse(date, new ParsePosition(0));
        }
    } catch (ParseException e) {
        throw new JsonParseException(e);
    }
}