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

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

Introduction

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

Prototype

public JsonToken peek() throws IOException 

Source Link

Document

Returns the type of the next token without consuming it.

Usage

From source file:org.wso2.carbon.governance.rest.api.internal.JSONMessageBodyReader.java

License:Open Source License

/**
 * Traverses through a json object and maps the keys and values to a {@link Map}
 *
 * @param reader        {@link JsonReader}
 * @param map           map that the values to be added.
 * @param token         {@link JsonToken}
 * @param isArray       whether the object is inside a json array
 * @throws IOException  If unable to parse the json object
 *///from  w  w  w.  j  ava  2s  . c om
protected void handleObject(JsonReader reader, Map<String, Object> map, JsonToken token, boolean isArray)
        throws IOException {
    String key = null;
    while (true) {
        if (token == null) {
            token = reader.peek();
        }

        if (JsonToken.BEGIN_OBJECT.equals(token)) {
            reader.beginObject();

        } else if (JsonToken.END_OBJECT.equals(token)) {
            reader.endObject();

        } else if (JsonToken.NAME.equals(token)) {
            key = reader.nextName();

        } else if (JsonToken.STRING.equals(token)) {
            String value = reader.nextString();
            handleValue(key, value, map, isArray);
            key = null;

        } else if (JsonToken.NUMBER.equals(token)) {
            Double value = reader.nextDouble();
            handleValue(key, value, map, isArray);
            key = null;

        } else if (token.equals(JsonToken.BEGIN_ARRAY)) {
            Map<String, Object> values = handleArray(reader);
            if (key != null) {
                map.put(key, values);
            }

        } else {
            reader.skipValue();
        }

        if (reader.hasNext()) {
            token = reader.peek();
        } else {
            break;
        }
    }
}

From source file:org.wso2.carbon.governance.rest.api.internal.JSONMessageBodyReader.java

License:Open Source License

/**
 * Traverse through a json array and maps the array elements to a {@link Map}
 *
 * @param reader        {@link JsonReader}
 * @return              map with json array values mapped to key value pairs.
 * @throws IOException  If unable to parse the json array.
 *///from  w w  w .ja v a 2  s . c  om
private Map<String, Object> handleArray(JsonReader reader) throws IOException {
    Map<String, Object> values = new HashMap<>();
    reader.beginArray();
    JsonToken token = reader.peek();
    while (token != null) {
        if (token.equals(JsonToken.END_ARRAY)) {
            reader.endArray();
            return values;
        } else {
            handleObject(reader, values, token, true);
        }
        token = reader.peek();
    }
    return values;
}

From source file:pl.softech.gw.json.TaskGsonTypeAdapter.java

License:Apache License

@Override
public ITask read(JsonReader reader) throws IOException {
    if (reader.peek() == JsonToken.NULL) {
        reader.nextNull();/*from w w  w  . j a  v  a2  s . com*/
        return null;
    }

    reader.beginObject();

    TaskInstanceCreator instanceCreator = new TaskInstanceCreator();
    while (reader.peek() != JsonToken.END_OBJECT) {

        String name = reader.nextName();
        Object value;
        if (reader.peek() == JsonToken.BEGIN_OBJECT && !name.equals("module")) {
            value = read(reader);
        } else {
            if (name.equals("module")) {
                value = gson.getAdapter(ProjectModule.class).read(reader);
            } else {
                value = reader.nextString();
            }
        }

        if (name.equals("class")) {
            instanceCreator.className = value.toString();
        } else {
            instanceCreator.params.put(name, new Param(name, value));
        }

    }

    reader.endObject();
    return instanceCreator.create();
}

From source file:ro.cosu.vampires.server.util.gson.LowercaseEnumTypeAdapterFactory.java

License:Open Source License

@SuppressWarnings("unchecked")
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
    Class<T> rawType = (Class<T>) type.getRawType();
    if (!rawType.isEnum()) {
        return null;
    }//from  w  w w  .ja  v  a2  s  .  c o m

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

From source file:ru.orangesoftware.financisto2.export.flowzr.FlowzrSyncEngine.java

License:Open Source License

public <T> int readMessage(JsonReader reader, String tableName, Class<T> clazz, long last_sync_ts)
        throws IOException, JSONException, Exception {
    String n = null;/*from  ww  w  .  ja  va2 s.c om*/
    int i = 0;
    while (reader.hasNext()) {
        JsonToken peek = reader.peek();
        String v = null;
        if (peek == JsonToken.BEGIN_OBJECT) {
            reader.beginObject();
        } else if (peek == JsonToken.NAME) {
            n = reader.nextName();
        } else if (peek == JsonToken.BEGIN_ARRAY) {
            if (n.equals(tableName)) {
                i = readJsnArr(reader, tableName, clazz);

            } else {
                if (n.equals("params")) {
                    reader.beginArray();
                    if (reader.hasNext()) {
                        reader.beginObject();
                        if (reader.hasNext()) {
                            n = reader.nextName();
                            v = reader.nextString();
                        }
                        reader.endObject();
                    }
                    reader.endArray();
                } else {
                    reader.skipValue();
                }
            }
        } else if (peek == JsonToken.END_OBJECT) {
            reader.endObject();
        } else if (peek == JsonToken.END_ARRAY) {
            reader.endArray();
        }
    }
    return i;
}

From source file:ru.orangesoftware.financisto2.export.flowzr.FlowzrSyncEngine.java

License:Open Source License

public <T> int readJsnArr(JsonReader reader, String tableName, Class<T> clazz)
        throws IOException, JSONException, Exception {
    JSONObject o = new JSONObject();
    JsonToken peek = reader.peek();
    String n = null;//from  w  w  w . ja  v  a 2 s.  c o m
    reader.beginArray();
    int j = 0;
    int i = 0;
    while (reader.hasNext()) {
        peek = reader.peek();
        if (reader.peek() == JsonToken.BEGIN_OBJECT) {
            reader.beginObject();
        } else if (reader.peek() == JsonToken.END_OBJECT) {
            reader.endObject();
        }
        o = new JSONObject();
        while (reader.hasNext()) {
            peek = reader.peek();
            if (peek == JsonToken.NAME) {
                n = reader.nextName();
            } else if (peek == JsonToken.BEGIN_OBJECT) {
                reader.beginObject();
            } else if (peek == JsonToken.END_OBJECT) {
                reader.endObject();
            } else if (peek == JsonToken.BOOLEAN) {
                try {
                    o.put(n, reader.nextBoolean());
                } catch (JSONException e) {

                    e.printStackTrace();
                }
            } else if (peek == JsonToken.STRING) {
                try {
                    o.put(n, reader.nextString());

                } catch (JSONException e) {

                    e.printStackTrace();
                }
            } else if (peek == JsonToken.NUMBER) {
                try {
                    o.put(n, reader.nextDouble());

                } catch (JSONException e) {

                    e.printStackTrace();
                }
            }
        }
        reader.endObject();
        if (o.has("key")) {
            i = i + 1;
            j = j + 1;
            if (j % 100 == 0) {
                j = 2;
            }
            saveEntityFromJson(o, tableName, clazz, i);
            if (i % 10 == 0) {
                flowzrSyncActivity.notifyUser(
                        flowzrSyncActivity.getString(R.string.flowzr_sync_receiving) + " " + tableName + ". "
                                + flowzrSyncActivity.getString(R.string.hint_run_background),
                        (int) (Math.round(j)));
            }
        }
    }
    reader.endArray();
    return i;
}

From source file:se.sics.datamodel.client.gson.CGetObjAdapter.java

License:Open Source License

@Override
public CGetObj read(JsonReader reader) throws IOException {
    Gson gson = CGsonHelper.getGson();/*w  w w  .j  av  a 2s . co  m*/

    reader.beginObject();
    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) {
        throw new IOException();
    }
    ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) {
        throw new IOException();
    }
    ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("objId")) {
        throw new IOException();
    }
    ByteId objId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    reader.endObject();
    return new CGetObj(Triplet.with(dbId, typeId, objId));
}

From source file:se.sics.datamodel.client.gson.CGetTypeAdapter.java

License:Open Source License

@Override
public CGetType read(JsonReader reader) throws IOException {
    Gson gson = CGsonHelper.getGson();/* w ww  .j  a va  2  s  .c  om*/

    reader.beginObject();
    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) {
        throw new IOException();
    }
    ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) {
        throw new IOException();
    }
    ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    reader.endObject();
    return new CGetType(Pair.with(dbId, typeId));
}

From source file:se.sics.datamodel.client.gson.CPutObjAdapter.java

License:Open Source License

@Override
public CPutObj read(JsonReader reader) throws IOException {
    Gson gson = CGsonHelper.getGson();/*from  w w  w. j a v  a 2s. c  o  m*/

    reader.beginObject();
    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) {
        throw new IOException();
    }
    ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) {
        throw new IOException();
    }
    ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("objId")) {
        throw new IOException();
    }
    ByteId objId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("obj")) {
        throw new IOException();
    }
    ValueHolder vh = gson.fromJson(reader, ValueHolder.class);
    reader.endObject();
    return new CPutObj(Triplet.with(dbId, typeId, objId), vh);
}

From source file:se.sics.datamodel.client.gson.CPutTypeAdapter.java

License:Open Source License

@Override
public CPutType read(JsonReader reader) throws IOException {
    Gson gson = CGsonHelper.getGson();//from w ww.  jav a  2 s. c  o m

    reader.beginObject();
    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) {
        throw new IOException();
    }
    ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) {
        throw new IOException();
    }
    ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeInfo")) {
        throw new IOException();
    }
    TypeInfo typeInfo = gson.fromJson(reader, TypeInfo.class);
    reader.endObject();

    return new CPutType(Pair.with(dbId, typeId), typeInfo);
}