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

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

Introduction

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

Prototype

public void endArray() throws IOException 

Source Link

Document

Consumes the next token from the JSON stream and asserts that it is the end of the current array.

Usage

From source file:org.jclouds.http.functions.ParseFirstJsonValueNamed.java

License:Apache License

private JsonToken skipAndPeek(JsonToken token, JsonReader reader) throws IOException {
    switch (token) {
    case BEGIN_ARRAY:
        reader.beginArray();/*from   ww  w.  j  av  a  2  s .co m*/
        break;
    case END_ARRAY:
        reader.endArray();
        break;
    case BEGIN_OBJECT:
        reader.beginObject();
        break;
    case END_OBJECT:
        reader.endObject();
        break;
    case NAME:
        // NOTE that we have already advanced on NAME in the eval block;
        break;
    case STRING:
        reader.nextString();
        break;
    case NUMBER:
        reader.nextString();
        break;
    case BOOLEAN:
        reader.nextBoolean();
        break;
    case NULL:
        reader.nextNull();
        break;
    case END_DOCUMENT:
        break;
    }
    return reader.peek();
}

From source file:org.jclouds.json.internal.IgnoreNullFluentIterableTypeAdapterFactory.java

License:Apache License

protected <E> TypeAdapter<FluentIterable<E>> newFluentIterableAdapter(final TypeAdapter<E> elementAdapter) {
    return new TypeAdapter<FluentIterable<E>>() {
        public void write(JsonWriter out, FluentIterable<E> value) throws IOException {
            out.beginArray();//from ww w . j  av  a  2s .  c  o m
            for (E element : value) {
                elementAdapter.write(out, element);
            }
            out.endArray();
        }

        public FluentIterable<E> read(JsonReader in) throws IOException {
            in.beginArray();
            Builder<E> builder = ImmutableList.<E>builder();
            while (in.hasNext()) {
                E element = elementAdapter.read(in);
                if (element != null)
                    builder.add(element);
            }
            in.endArray();
            return FluentIterable.from(builder.build());
        }
    }.nullSafe();
}

From source file:org.jclouds.json.internal.IgnoreNullIterableTypeAdapterFactory.java

License:Apache License

protected <E> TypeAdapter<Iterable<E>> newIterableAdapter(final TypeAdapter<E> elementAdapter) {
    return new TypeAdapter<Iterable<E>>() {
        public void write(JsonWriter out, Iterable<E> value) throws IOException {
            out.beginArray();//from w w w  . j  a  v  a 2s. com
            for (E element : value) {
                elementAdapter.write(out, element);
            }
            out.endArray();
        }

        public Iterable<E> read(JsonReader in) throws IOException {
            in.beginArray();
            Builder<E> builder = ImmutableList.<E>builder();
            while (in.hasNext()) {
                E element = elementAdapter.read(in);
                if (element != null)
                    builder.add(element);
            }
            in.endArray();
            return builder.build();
        }
    }.nullSafe();
}

From source file:org.jclouds.json.internal.IgnoreNullMultimapTypeAdapterFactory.java

License:Apache License

private <K, V> TypeAdapter<Multimap<K, V>> newMapAdapter(final TypeAdapter<K> keyAdapter,
        final TypeAdapter<V> valueAdapter) {
    return new TypeAdapter<Multimap<K, V>>() {
        public void write(JsonWriter out, Multimap<K, V> map) throws IOException {
            out.beginObject();//from ww  w.j av  a  2s . com
            for (K key : map.keySet()) {
                out.name(String.valueOf(key));
                out.beginArray();
                for (V value : map.get(key)) {
                    valueAdapter.write(out, value);
                }
                out.endArray();
            }
            out.endObject();
        }

        public Multimap<K, V> read(JsonReader in) throws IOException {
            ImmutableMultimap.Builder<K, V> result = ImmutableListMultimap.builder();
            in.beginObject();
            while (in.hasNext()) {
                JsonReaderInternalAccess.INSTANCE.promoteNameToValue(in);
                K name = keyAdapter.read(in);
                in.beginArray();
                while (in.hasNext()) {
                    V value = valueAdapter.read(in);
                    if (value != null)
                        result.put(name, value);
                }
                in.endArray();
            }
            in.endObject();
            return result.build();
        }
    }.nullSafe();
}

From source file:org.jclouds.json.internal.IgnoreNullSetTypeAdapterFactory.java

License:Apache License

private <E> TypeAdapter<Set<E>> newSetAdapter(final TypeAdapter<E> elementAdapter) {
    return new TypeAdapter<Set<E>>() {
        public void write(JsonWriter out, Set<E> value) throws IOException {
            out.beginArray();//  w w  w .java  2s  . com
            for (E element : value) {
                elementAdapter.write(out, element);
            }
            out.endArray();
        }

        public Set<E> read(JsonReader in) throws IOException {
            Set<E> result = Sets.newLinkedHashSet();
            in.beginArray();
            while (in.hasNext()) {
                E element = elementAdapter.read(in);
                if (element != null)
                    result.add(element);
            }
            in.endArray();
            return result;
        }
    }.nullSafe();
}

From source file:org.jclouds.openstack.swift.v1.config.SwiftTypeAdapters.java

License:Apache License

static void readErrors(JsonReader reader, Builder<String, String> errors) throws IOException {
    reader.beginArray();// ww w  . j a v  a2  s. c  o m
    while (reader.hasNext()) {
        reader.beginArray();
        String decodedPath = URI.create(reader.nextString()).getPath();
        errors.put(decodedPath, reader.nextString());
        reader.endArray();
    }
    reader.endArray();
}

From source file:org.kairosdb.client.AbstractClient.java

License:Apache License

private List<String> readNameQueryResponse(InputStream stream) throws IOException {
    List<String> list = new ArrayList<String>();
    JsonReader reader = new JsonReader(new InputStreamReader(stream, "UTF-8"));

    try {/*from   www  .j  a v  a 2s  .c om*/
        reader.beginObject();
        String container = reader.nextName();
        if (container.equals("results")) {
            reader.beginArray();
            while (reader.hasNext()) {
                list.add(reader.nextString());
            }
            reader.endArray();
            reader.endObject();
        }
    } finally {
        reader.close();
    }

    return list;
}

From source file:org.kairosdb.core.http.rest.json.DataPointsParser.java

License:Apache License

public ValidationErrors parse() throws IOException, DatastoreException {
    long start = System.currentTimeMillis();
    ValidationErrors validationErrors = new ValidationErrors();

    JsonReader reader = new JsonReader(inputStream);

    try {//  w w  w .j a v a 2  s.  c  om
        int metricCount = 0;

        if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) {
            try {
                reader.beginArray();

                while (reader.hasNext()) {
                    NewMetric metric = parseMetric(reader);
                    validateAndAddDataPoints(metric, validationErrors, metricCount);
                    metricCount++;
                }
            } catch (EOFException e) {
                validationErrors.addErrorMessage("Invalid json. No content due to end of input.");
            }

            reader.endArray();
        } else if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) {
            NewMetric metric = parseMetric(reader);
            validateAndAddDataPoints(metric, validationErrors, 0);
        } else
            validationErrors.addErrorMessage("Invalid start of json.");

    } catch (EOFException e) {
        validationErrors.addErrorMessage("Invalid json. No content due to end of input.");
    } finally {
        reader.close();
    }

    ingestTime = (int) (System.currentTimeMillis() - start);

    return validationErrors;
}

From source file:org.kairosdb.util.ResponseToMetricConverter.java

License:Apache License

public void convert(InputStream inputStream, OutputStream outStream) throws IOException {

    JsonReader reader = new JsonReader(new InputStreamReader(inputStream));
    JsonWriter writer = new JsonWriter(new OutputStreamWriter(outStream));

    try {//ww  w.jav a 2s  .  co m
        writer.beginArray();

        // Queries array
        reader.beginObject();
        while (reader.hasNext()) {
            String token = reader.nextName();
            if (token.equals("queries")) {
                reader.beginArray();

                while (reader.hasNext()) {
                    reader.beginObject();
                    token = reader.nextName();
                    if (token.equals("results")) {
                        parseResults(reader, writer);
                    }
                    reader.endObject();
                }

                reader.endArray();
            }
        }
        reader.endObject();

        writer.endArray();
    } catch (RuntimeException e) {
        e.printStackTrace();
    } finally {
        reader.close();
        writer.close();
    }
}

From source file:org.kairosdb.util.ResponseToMetricConverter.java

License:Apache License

private void parseResults(JsonReader reader, JsonWriter writer) throws IOException {
    reader.beginArray();//from  www  .  j a v a2 s  .  c o m
    while (reader.hasNext()) {
        MetricFrom metricFrom = gson.fromJson(reader, MetricFrom.class);
        MetricTo metricTo = new MetricTo(metricFrom);
        gson.toJson(metricTo, MetricTo.class, writer);
    }

    reader.endArray();
}