Example usage for com.google.gson.stream JsonWriter nullValue

List of usage examples for com.google.gson.stream JsonWriter nullValue

Introduction

In this page you can find the example usage for com.google.gson.stream JsonWriter nullValue.

Prototype

public JsonWriter nullValue() throws IOException 

Source Link

Document

Encodes null .

Usage

From source file:ToStringSerializedTypeAdapter.java

License:Apache License

@Override
public void write(JsonWriter out, T value) throws IOException {
    if (value == null) {
        out.nullValue();
    } else {/*from   www  .  j  a  v a 2s  . c  o m*/
        out.value(value.toString());
    }
}

From source file:LongDateTypeAdapter.java

License:Apache License

@Override
public void write(JsonWriter out, Date value) throws IOException {
    if (value == null) {
        out.nullValue();
    } else {//from ww w . j a va  2 s.  c  o m
        out.value(String.valueOf(value.getTime()));
    }
}

From source file:InstantTypeAdapter.java

License:Apache License

@Override
public void write(JsonWriter out, Instant value) throws IOException {
    if (value == null) {
        out.nullValue();
    } else {/*  ww  w .  ja v  a2  s . co  m*/
        out.value(value.toString());
    }
}

From source file:BundleTypeAdapterFactory.java

License:Apache License

@SuppressWarnings("unchecked")
@Override// w ww.j  a  va2 s.c  o  m
public <T> TypeAdapter<T> create(final Gson gson, TypeToken<T> type) {
    if (!Bundle.class.isAssignableFrom(type.getRawType())) {
        return null;
    }
    return (TypeAdapter<T>) new TypeAdapter<Bundle>() {
        @Override
        public void write(JsonWriter out, Bundle bundle) throws IOException {
            if (bundle == null) {
                out.nullValue();
                return;
            }
            out.beginObject();
            for (String key : bundle.keySet()) {
                out.name(key);
                Object value = bundle.get(key);
                if (value == null) {
                    out.nullValue();
                } else {
                    gson.toJson(value, value.getClass(), out);
                }
            }
            out.endObject();
        }

        @Override
        public Bundle read(JsonReader in) throws IOException {
            switch (in.peek()) {
            case NULL:
                in.nextNull();
                return null;
            case BEGIN_OBJECT:
                return toBundle(readObject(in));
            default:
                throw new IOException("expecting object: " + in.getPath());
            }
        }

        private Bundle toBundle(List<Pair<String, Object>> values) throws IOException {
            Bundle bundle = new Bundle();
            for (Pair<String, Object> entry : values) {
                String key = entry.first;
                Object value = entry.second;
                if (value instanceof String) {
                    bundle.putString(key, (String) value);
                } else if (value instanceof Integer) {
                    bundle.putInt(key, ((Integer) value).intValue());
                } else if (value instanceof Long) {
                    bundle.putLong(key, ((Long) value).longValue());
                } else if (value instanceof Double) {
                    bundle.putDouble(key, ((Double) value).doubleValue());
                } else if (value instanceof Parcelable) {
                    bundle.putParcelable(key, (Parcelable) value);
                } else if (value instanceof List) {
                    List<Pair<String, Object>> objectValues = (List<Pair<String, Object>>) value;
                    Bundle subBundle = toBundle(objectValues);
                    bundle.putParcelable(key, subBundle);
                } else {
                    throw new IOException("Unparcelable key, value: " + key + ", " + value);
                }
            }
            return bundle;
        }

        private List<Pair<String, Object>> readObject(JsonReader in) throws IOException {
            List<Pair<String, Object>> object = new ArrayList<Pair<String, Object>>();
            in.beginObject();
            while (in.peek() != JsonToken.END_OBJECT) {
                switch (in.peek()) {
                case NAME:
                    String name = in.nextName();
                    Object value = readValue(in);
                    object.add(new Pair<String, Object>(name, value));
                    break;
                case END_OBJECT:
                    break;
                default:
                    throw new IOException("expecting object: " + in.getPath());
                }
            }
            in.endObject();
            return object;
        }

        private Object readValue(JsonReader in) throws IOException {
            switch (in.peek()) {
            case BEGIN_ARRAY:
                return readArray(in);
            case BEGIN_OBJECT:
                return readObject(in);
            case BOOLEAN:
                return in.nextBoolean();
            case NULL:
                in.nextNull();
                return null;
            case NUMBER:
                return readNumber(in);
            case STRING:
                return in.nextString();
            default:
                throw new IOException("expecting value: " + in.getPath());
            }
        }

        private Object readNumber(JsonReader in) throws IOException {
            double doubleValue = in.nextDouble();
            if (doubleValue - Math.ceil(doubleValue) == 0) {
                long longValue = (long) doubleValue;
                if (longValue >= Integer.MIN_VALUE && longValue <= Integer.MAX_VALUE) {
                    return (int) longValue;
                }
                return longValue;
            }
            return doubleValue;
        }

        @SuppressWarnings("rawtypes")
        private List readArray(JsonReader in) throws IOException {
            List list = new ArrayList();
            in.beginArray();
            while (in.peek() != JsonToken.END_ARRAY) {
                Object element = readValue(in);
                list.add(element);
            }
            in.endArray();
            return list;
        }
    };
}

From source file:DateTimeTypeAdapter.java

License:Apache License

@Override
public void write(JsonWriter out, DateTime value) throws IOException {
    if (value == null) {
        out.nullValue();
    } else {/*from   ww w .  ja  va  2s.c  o m*/
        out.value(value.toString());
    }
}

From source file:abtlibrary.utils.as24ApiClient.JSON.java

License:Apache License

@Override
public void write(JsonWriter out, DateTime date) throws IOException {
    if (date == null) {
        out.nullValue();
    } else {/* w  ww .  j a v a  2 s  .com*/
        out.value(formatter.print(date));
    }
}

From source file:abtlibrary.utils.as24ApiClient.JSON.java

License:Apache License

@Override
public void write(JsonWriter out, LocalDate date) throws IOException {
    if (date == null) {
        out.nullValue();
    } else {//from w w  w  . j a va 2  s. c  o m
        out.value(formatter.print(date));
    }
}

From source file:at.yawk.mojangapi.InstantTypeAdapter.java

License:Mozilla Public License

@Override
public void write(JsonWriter out, Instant value) throws IOException {
    if (value == null) {
        out.nullValue();
    } else {//from www  . ja v  a2  s  . c  o  m
        out.value(value.toEpochMilli());
    }
}

From source file:at.yawk.mojangapi.UUIDTypeAdapter.java

License:Mozilla Public License

@Override
public void write(JsonWriter out, UUID value) throws IOException {
    if (value == null) {
        out.nullValue();
    } else {/*  w w w  . j  a v a 2 s .  c om*/
        out.value(stripDashes(value));
    }
}

From source file:blog.ClassTypeAdapter.java

License:Apache License

@Override
public void write(JsonWriter jsonWriter, Class<?> clazz) throws IOException {
    if (clazz == null) {
        jsonWriter.nullValue();
        return;/*w w w  .ja  va2s  .  co  m*/
    }
    jsonWriter.value(clazz.getName());
}