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:data.TaskADataParser.java

License:Apache License

public static String[] readLabelsArray(JsonReader reader) {

    String labels[];/*from  ww  w .j a v  a 2  s  .  co  m*/
    ArrayList<String> lab = new ArrayList<String>();
    try {
        reader.beginArray();
        while (reader.hasNext()) {
            String nextString = reader.nextString();
            lab.add(nextString);
        }
        reader.endArray();
    } catch (IOException ex) {
    }
    labels = new String[lab.size()];
    labels = lab.toArray(labels);
    return labels;
}

From source file:de.dentrassi.eclipse.provider.eclipse.ValueAdapter.java

License:Open Source License

@Override
public String read(final JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        return null;
    }/*from w w  w. java  2 s. c  om*/

    String result = null;
    in.beginArray();
    while (in.hasNext()) {
        in.beginObject();
        while (in.hasNext()) {
            final String name = in.nextName();
            if ("value".equals(name)) {
                result = in.nextString();
            } else {
                in.skipValue();
            }
        }
        in.endObject();
    }
    in.endArray();

    return result;
}

From source file:de.loercher.geomodule.cloudant.CloudantGeoSearchStream.java

private void extractEntities(BufferedReader bufferedReader) throws JSONParseException {
    JsonReader reader = new JsonReader(bufferedReader);
    try {/*from  ww  w.ja va  2  s  .  c  o  m*/
        reader.beginObject();

        String arrayName = null;
        while (reader.hasNext() && !("features".equals(arrayName))) {
            arrayName = reader.nextName();
            if ("bookmark".equals(arrayName)) {
                bookmark = reader.nextString();
            } else if (!("features".equals(arrayName))) {
                reader.skipValue();
            }
        }

        if ("features".equals(arrayName)) {
            reader.beginArray();

            while (reader.hasNext()) {
                Gson gson = new Gson();
                CloudantArticleEntity entity = gson.fromJson(reader, CloudantArticleEntity.class);

                // Duplicates should not be returned
                if (!(alreadyAvailableIds.contains(entity.getId()))) {
                    bufferedEntities.add(entity);
                }

                alreadyAvailableIds.add(entity.getId());
            }

            reader.endArray();
            reader.endObject();
            reader.close();
        } else {
            JSONParseException e = new JSONParseException(
                    "Parsing of cloudant response failed. Tag 'features' not found. ");
            log.error(e.getLoggingString());
            throw e;
        }
    } catch (IOException ex) {
        JSONParseException e = new JSONParseException("Parsing of cloudant response failed.", ex);
        log.error(e.getLoggingString());
        throw e;
    }
}

From source file:de.pribluda.android.jsonmarshaller.JSONUnmarshaller.java

License:Apache License

/**
 * read array into list//  w w w  .ja  va  2  s . co m
 *
 * @param reader
 * @param beanToBeCreatedClass
 * @return
 */
public static <T> List<T> unmarshallArray(JsonReader reader, java.lang.Class<T> beanToBeCreatedClass)
        throws IOException, InvocationTargetException, NoSuchMethodException, InstantiationException,
        IllegalAccessException {
    ArrayList<T> retval = new ArrayList();
    reader.beginArray();
    // read objects after each other
    while (reader.peek() == JsonToken.BEGIN_OBJECT) {
        retval.add(unmarshall(reader, beanToBeCreatedClass));
    }
    reader.endArray();

    return retval;
}

From source file:de.pribluda.android.jsonmarshaller.JSONUnmarshaller.java

License:Apache License

/**
 * recursively populate array out of hierarchy of JSON Objects
 *
 * @param arrayClass original array class
 * @param reader     reader to be processed
 * @return/*  w  ww .ja v  a 2  s .  c om*/
 */
private static Object populateRecusrsive(Class arrayClass, JsonReader reader) throws InvocationTargetException,
        NoSuchMethodException, InstantiationException, IllegalAccessException, IOException {
    ArrayList value = new ArrayList();
    Object retval = null;
    reader.beginArray();
    if (arrayClass.isArray()) {
        // create list, as we do not know size yet

        final Class componentType = arrayClass.getComponentType();
        // iterate over reader
        while (reader.hasNext()) {
            Object component;
            if (componentType.isArray()) {
                // component is array - dive down
                component = populateRecusrsive(componentType, reader);
                if (component != null) {
                    value.add(component);
                }
            } else {
                // component is leaf,
                Object leaf = unmarshalValue(reader, componentType);
                Object obj = convertToObject(componentType, leaf);
                if (obj != null) {
                    value.add(obj);
                }
            }
        }
        // copy everything to array,
        retval = Array.newInstance(componentType, value.size());
        for (int i = 0; i < value.size(); i++) {
            Array.set(retval, i, value.get(i));
        }
    } else {
        return null;
    }
    reader.endArray();

    return retval;
}

From source file:de.sabian.objectstore.ObjectStoreRaw.java

License:Apache License

public <T> boolean fillCollection(String identifier, Class<T> clazz, Collection<T> collection)
        throws IOException {
    if (contains(identifier)) {
        JsonReader jReader = new JsonReader(new StringReader(mJsonStorage.getJson(identifier)));
        jReader.beginArray();/* ww w.j  a v a 2 s  .c o m*/
        while (jReader.hasNext()) {
            T object = mGson.fromJson(jReader, clazz);
            collection.add(object);
        }
        jReader.endArray();
        jReader.close();
        return true;
    } else
        return false;
}

From source file:de.sabian.objectstore.ObjectStoreRaw.java

License:Apache License

public <T, X> boolean fillMap(String identifier, Class<T> classOfKeys, Class<X> classOfValues, Map<T, X> map)
        throws IOException {
    if (contains(identifier)) {
        JsonReader jReader = new JsonReader(new StringReader(mJsonStorage.getJson(identifier)));
        jReader.beginArray();//from w w  w  .  j  a va  2  s  .  c o m
        while (jReader.hasNext()) {
            jReader.beginObject();
            String name = jReader.nextName();
            if (!name.equals("key"))
                throw new IOException("expected name key but found: " + name);
            T key = mGson.fromJson(jReader, classOfKeys);
            name = jReader.nextName();
            if (!name.equals("value"))
                throw new IOException("expected name value but found: " + name);
            X value = mGson.fromJson(jReader, classOfValues);
            jReader.endObject();
            map.put(key, value);
        }
        jReader.endArray();
        jReader.close();
        return true;
    } else
        return false;
}

From source file:de.winniehell.battlebeavers.storage.GameStorage.java

License:Open Source License

/**
 * loads the storage from file/*from w w w  .jav  a 2  s .  co  m*/
 * @throws FileNotFoundException
 */
private void loadFromFile() throws FileNotFoundException {

    if (!(new File(getFileName())).exists()) {
        final GameInfo info = GameInfo.fromFile(context, game);

        Log.d(TAG, "Copying maps/" + info.getMapName() + "/setup.json");

        try {
            final InputStream src = context.getAssets().open("maps/" + info.getMapName() + "/setup.json");

            final FileOutputStream dest = new FileOutputStream(getFileName());

            StreamUtils.copyAndClose(src, dest);
        } catch (final IOException e) {
            Log.e(TAG, "Copying map failed!", e);
            return;
        }
    }

    try {
        Log.d(TAG, "loading: " + StreamUtils.readFully(new FileInputStream(getFileName())));
    } catch (final Exception e) {
        Log.e(TAG, e.getMessage());
        return;
    }

    final Gson gson = CustomGSON.getInstance();
    final JsonReader reader = CustomGSON.getReader(context, getFileName());

    // file does not exist
    if (reader == null) {
        throw new FileNotFoundException(getFileName());
    }

    try {
        reader.beginArray();
        while (reader.hasNext()) {
            final Soldier soldier = gson.fromJson(reader, Soldier.class);

            try {
                addSoldier(soldier);
            } catch (final UnexpectedTileContentException e) {
                Log.e(TAG, "Adding soldier failed!", e);
            }
        }
        reader.endArray();
    } catch (final Exception e) {
        Log.e(TAG, "Loading game storage failed!", e);
    } finally {
        try {
            reader.close();
        } catch (final IOException e) {
            Log.e(TAG, "Closing reader failed!", e);
        }
    }
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

public static DirectedWeightedMultigraph<Node, DefaultLink> readGraph(JsonReader reader) throws IOException {

    DirectedWeightedMultigraph<Node, DefaultLink> graph = new DirectedWeightedMultigraph<Node, DefaultLink>(
            LabeledLink.class);

    Node n, source, target;// w  w  w . j a  va2 s .  c  o m
    DefaultLink l;
    Double[] weight = new Double[1];
    HashMap<String, Node> idToNodes = new HashMap<>();

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("nodes") && reader.peek() != JsonToken.NULL) {
            reader.beginArray();
            while (reader.hasNext()) {
                n = readNode(reader);
                if (n != null) {
                    idToNodes.put(n.getId(), n);
                    graph.addVertex(n);
                }
            }
            reader.endArray();
        } else if (key.equals("links") && reader.peek() != JsonToken.NULL) {
            reader.beginArray();
            while (reader.hasNext()) {
                l = readLink(reader, weight);
                if (l != null) {
                    source = idToNodes.get(LinkIdFactory.getLinkSourceId(l.getId()));
                    target = idToNodes.get(LinkIdFactory.getLinkTargetId(l.getId()));
                    if (source != null && target != null) {
                        graph.addEdge(source, target, l);
                        if (weight[0] != null)
                            graph.setEdgeWeight(l, weight[0].doubleValue());
                    }
                }
            }
            reader.endArray();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    return graph;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static Node readNode(JsonReader reader) throws IOException {

    String id = null;/*  www.  j a  v a  2s  . co m*/
    Label label = null;
    NodeType type = null;
    String hNodeId = null;
    String columnName = null;
    Label rdfLiteralType = null;
    String language = null;
    Label datatype = null;
    String value = null;
    boolean isUri = false;
    SemanticType userSelectedSemanticType = null;
    List<SemanticType> learnedSemanticTypes = null;
    List<SemanticType> userSemanticTypes = null;
    Set<String> modelIds = null;

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id") && reader.peek() != JsonToken.NULL) {
            id = reader.nextString();
        } else if (key.equals("label") && reader.peek() != JsonToken.NULL) {
            label = readLabel(reader);
        } else if (key.equals("type") && reader.peek() != JsonToken.NULL) {
            type = NodeType.valueOf(reader.nextString());
        } else if (key.equals("hNodeId") && reader.peek() != JsonToken.NULL) {
            hNodeId = reader.nextString();
        } else if (key.equals("columnName") && reader.peek() != JsonToken.NULL) {
            columnName = reader.nextString();
        } else if (key.equals("datatype") && reader.peek() != JsonToken.NULL) {
            datatype = readLabel(reader);
        } else if (key.equals("value") && reader.peek() != JsonToken.NULL) {
            value = reader.nextString();
        } else if (key.equals("isUri") && reader.peek() != JsonToken.NULL) {
            isUri = Boolean.parseBoolean(reader.nextString());
        } else if (key.equals("rdfLiteralType") && reader.peek() != JsonToken.NULL) {
            rdfLiteralType = readLabel(reader);
        } else if (key.equals("language") && reader.peek() != JsonToken.NULL) {
            language = reader.nextString();
        } else if (key.equals("userSelectedSemanticType") && reader.peek() != JsonToken.NULL) {
            userSelectedSemanticType = readSemanticType(reader);
        } else if (key.equals("suggestedSemanticTypes") && reader.peek() != JsonToken.NULL) {
            learnedSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                learnedSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("userSemanticTypes") && reader.peek() != JsonToken.NULL) {
            userSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                userSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("learnedSemanticTypes") && reader.peek() != JsonToken.NULL) {
            learnedSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                learnedSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("modelIds") && reader.peek() != JsonToken.NULL) {
            modelIds = readModelIds(reader);
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    Node n = null;
    if (type == NodeType.InternalNode) {
        n = new InternalNode(id, label);
    } else if (type == NodeType.ColumnNode) {
        n = new ColumnNode(id, hNodeId, columnName, rdfLiteralType, language);
        if (userSemanticTypes == null && userSelectedSemanticType != null) {
            userSemanticTypes = new ArrayList<>();
            userSemanticTypes.add(userSelectedSemanticType);
        }
        if (userSemanticTypes != null) {
            for (SemanticType st : userSemanticTypes)
                ((ColumnNode) n).assignUserType(st);
        }
        ((ColumnNode) n).setLearnedSemanticTypes(learnedSemanticTypes);
    } else if (type == NodeType.LiteralNode) {
        n = new LiteralNode(id, value, datatype, language, isUri);
    } else {
        logger.error("cannot instanciate a node from the type: " + type.toString());
        return null;
    }

    n.setModelIds(modelIds);

    return n;
}