List of usage examples for com.google.gson.stream JsonReader endArray
public void endArray() throws IOException
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; }