List of usage examples for com.google.gson.stream JsonReader skipValue
public void skipValue() throws IOException
From source file:com.quarterfull.newsAndroid.reader.owncloud.OwnCloudReaderMethods.java
License:Open Source License
/** * can parse json like {"items":[{"id":6782}]} * @param in//from w ww . j ava2 s .c o m * @param iJoBj * @return count all, count new items * @throws IOException */ public static int[] readJsonStreamV2(InputStream in, IHandleJsonObject iJoBj) throws IOException { List<String> allowedArrays = Arrays.asList("feeds", "folders", "items"); int count = 0; int newItemsCount = 0; JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8")); reader.beginObject(); String currentName; while (reader.hasNext() && (currentName = reader.nextName()) != null) { if (allowedArrays.contains(currentName)) break; else reader.skipValue(); } reader.beginArray(); while (reader.hasNext()) { JSONObject e = getJSONObjectFromReader(reader); if (iJoBj.performAction(e)) newItemsCount++; count++; } if (iJoBj instanceof InsertItemIntoDatabase) ((InsertItemIntoDatabase) iJoBj).performDatabaseBatchInsert(); //Save pending buffer //reader.endArray(); //reader.endObject(); reader.close(); return new int[] { count, newItemsCount }; }
From source file:com.quarterfull.newsAndroid.reader.owncloud.OwnCloudReaderMethods.java
License:Open Source License
private static JSONObject getJSONObjectFromReader(JsonReader jsonReader) { JSONObject jObj = new JSONObject(); JsonToken tokenInstance;//from www.j a v a2 s. c o m try { tokenInstance = jsonReader.peek(); if (tokenInstance == JsonToken.BEGIN_OBJECT) jsonReader.beginObject(); else if (tokenInstance == JsonToken.BEGIN_ARRAY) jsonReader.beginArray(); while (jsonReader.hasNext()) { JsonToken token; String name; try { name = jsonReader.nextName(); token = jsonReader.peek(); //Log.d(TAG, token.toString()); switch (token) { case NUMBER: jObj.put(name, jsonReader.nextLong()); break; case NULL: jsonReader.skipValue(); break; case BOOLEAN: jObj.put(name, jsonReader.nextBoolean()); break; case BEGIN_OBJECT: //jsonReader.beginObject(); jObj.put(name, getJSONObjectFromReader(jsonReader)); //jsonReader.endObject(); break; case BEGIN_ARRAY: jsonReader.skipValue(); break; default: jObj.put(name, jsonReader.nextString()); } } catch (Exception ex) { ex.printStackTrace(); jsonReader.skipValue(); } } if (tokenInstance == JsonToken.BEGIN_OBJECT) jsonReader.endObject(); else if (tokenInstance == JsonToken.BEGIN_ARRAY) jsonReader.endArray(); return jObj; } catch (Exception e) { e.printStackTrace(); } return null; }
From source file:com.razza.apps.iosched.sync.ConferenceDataHandler.java
License:Open Source License
/** * Processes a conference data body and calls the appropriate data type handlers * to process each of the objects represented therein. * * @param dataBody The body of data to process * @throws IOException If there is an error parsing the data. *///from w w w . j a va2 s . com private void processDataBody(String dataBody) throws IOException { JsonReader reader = new JsonReader(new StringReader(dataBody)); JsonParser parser = new JsonParser(); try { reader.setLenient(true); // To err is human // the whole file is a single JSON object reader.beginObject(); while (reader.hasNext()) { // the key is "rooms", "speakers", "tracks", etc. String key = reader.nextName(); if (mHandlerForKey.containsKey(key)) { // pass the value to the corresponding handler mHandlerForKey.get(key).process(parser.parse(reader)); } else { LogUtils.LOGW(TAG, "Skipping unknown key in conference data json: " + key); reader.skipValue(); } } reader.endObject(); } finally { reader.close(); } }
From source file:com.solidfire.jsvcgen.serialization.ApiServerExceptionTypeAdapter.java
License:Open Source License
/** * {@inheritDoc}/*from w ww.ja v a 2s. c o m*/ */ @Override public ApiServerException read(JsonReader in) throws IOException { String name = null; String code = null; String message = null; in.beginObject(); while (in.hasNext()) { if (in.peek() != JsonToken.NAME) { in.skipValue(); continue; } switch (in.nextName()) { case "name": name = in.nextString(); break; case "code": code = in.nextString(); break; case "message": message = in.nextString(); break; } } in.endObject(); return new ApiServerException(name, code, message); }
From source file:com.suny.whereami.service.google.Place.java
License:Open Source License
/** * Read fields from a result object.//from w w w. ja v a 2s .co m * * @param fields * to read or 0 if all fields should be read * @param maxResults * maximum number of reviews, events, and photos to return */ Place(JsonReader in, int fields, int maxResults) throws IOException { in.beginObject(); while (in.hasNext()) { Key key = Key.get(in.nextName()); if (key == UNKNOWN || fields != 0 && key.mField != null && !key.mField.in(fields)) { /* unknown field or caller doesn't want it */ in.skipValue(); continue; } switch (key) { case id: mId = in.nextString(); break; case reference: mReference = in.nextString(); break; case icon: mIcon = in.nextString(); break; case url: mUrl = in.nextString(); break; case geometry: in.beginObject(); while (in.hasNext()) { if (in.nextName().equals("location")) { in.beginObject(); while (in.hasNext()) { switch (Key.get(in.nextName())) { case lat: mLat = in.nextDouble(); break; case lng: mLong = in.nextDouble(); break; default: in.skipValue(); } } in.endObject(); } else { in.skipValue(); // "viewport" } } in.endObject(); break; case name: mName = in.nextString(); break; case address_components: mAddress = new Address(in); break; case formatted_address: mFmtAddress = in.nextString(); break; case vicinity: mVicinity = in.nextString(); break; case international_phone_number: mIntlPhone = in.nextString(); break; case formatted_phone_number: mFmtPhone = in.nextString(); break; case website: mWebsite = in.nextString(); break; case types: types(in); break; case price_level: mPrice = in.nextInt(); break; case rating: mRating = (float) in.nextDouble(); break; case reviews: in.beginArray(); while (in.hasNext()) { if (mReviews == null) { int cap = Math.min(Math.max(0, maxResults), MAX_REVIEWS); mReviews = new ArrayList<Review>(cap > 0 ? cap : MAX_REVIEWS); } if (maxResults <= 0 || mReviews.size() < maxResults) { mReviews.add(new Review(in)); } else { in.skipValue(); } } in.endArray(); break; case opening_hours: in.beginObject(); while (in.hasNext()) { switch (Key.get(in.nextName())) { case open_now: mOpen = in.nextBoolean(); break; case periods: in.beginArray(); while (in.hasNext()) { if (mOpenHours == null) { mOpenHours = new ArrayList<OpeningHours>(); } mOpenHours.add(new OpeningHours(in)); } in.endArray(); break; default: in.skipValue(); } } in.endObject(); break; case events: in.beginArray(); while (in.hasNext()) { if (mEvents == null) { int cap = Math.min(Math.max(0, maxResults), MAX_EVENTS); mEvents = new ArrayList<Event>(cap > 0 ? cap : MAX_EVENTS); } if (maxResults <= 0 || mEvents.size() < maxResults) { mEvents.add(new Event(in)); } else { in.skipValue(); } } in.endArray(); break; case utc_offset: mUtcOffset = in.nextInt(); break; case photos: in.beginArray(); while (in.hasNext()) { if (mPhotos == null) { int cap = Math.min(Math.max(0, maxResults), MAX_PHOTOS); mPhotos = new ArrayList<Photo>(cap > 0 ? cap : MAX_PHOTOS); } if (maxResults <= 0 || mPhotos.size() < maxResults) { mPhotos.add(new Photo(in)); } else { in.skipValue(); } } in.endArray(); break; default: in.skipValue(); } } in.endObject(); }
From source file:com.teotigraphix.caustk.tone.ToneUtils.java
License:Apache License
/** * Reads and returns the {@link ToneType} from the JSON data. * //from ww w . j a v a 2s . c om * @param data Valid serialized Tone data. * @throws IOException */ public static ToneType readToneType(String data) throws IOException { JsonReader reader = new JsonReader(new StringReader(data)); String type = null; try { reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("toneType")) { type = reader.nextString(); } else { reader.skipValue(); } } reader.endObject(); } finally { reader.close(); } if (type != null) return ToneType.valueOf(type); return null; }
From source file:com.utad.flume.interceptor.InterceptorTwitter.java
License:Apache License
private byte[] readJsonStream(InputStream is) { byte[] body = null; try {// w w w . java 2 s . co m JsonReader reader = new JsonReader(new InputStreamReader(is, "UTF-8")); try { long id = 0L; String text = null; String userName = null; String userScreenName = null; reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("id")) { id = reader.nextLong(); } else if (name.equals("text")) { text = reader.nextString(); } else if (name.equals("user")) { reader.beginObject(); while (reader.hasNext()) { name = reader.nextName(); if (name.equals("name")) { userName = reader.nextString(); } else if (name.equals("screen_name")) { userScreenName = reader.nextString(); } else { reader.skipValue(); } } reader.endObject(); } else { reader.skipValue(); } } reader.endObject(); StringBuilder builder = new StringBuilder("ID:"); builder.append(id); builder.append("||"); if (outputText) { builder.append("TEXT:").append(text).append("||"); } if (outputUserName) { builder.append("USER:").append(userName).append("||"); } if (outputUserScreenName) { builder.append("SCREEN:").append(userScreenName).append("||"); } logger.debug("id: {}", id); logger.debug("text: {}", text); logger.debug("username: {}", userName); logger.debug("screenName: {}", userScreenName); body = builder.toString().getBytes("UTF-8"); } finally { reader.close(); } } catch (UnsupportedEncodingException e) { logger.error("UTF-8 is not supported on this runtime", e); } catch (IOException e) { logger.error("Caught an IOException", e); } return body; }
From source file:com.utad.flume.interceptor.InterceptorTwitterSpark.java
License:Apache License
private byte[] readJsonStream(InputStream is) { byte[] body = null; try {//from ww w . ja v a 2 s .c o m JsonReader reader = new JsonReader(new InputStreamReader(is, "UTF-8")); try { long id = 0L; String text = null; String userName = null; String userScreenName = null; reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("id")) { id = reader.nextLong(); } else if (name.equals("text")) { text = reader.nextString(); } else if (name.equals("user")) { reader.beginObject(); while (reader.hasNext()) { name = reader.nextName(); if (name.equals("name")) { userName = reader.nextString(); } else if (name.equals("screen_name")) { userScreenName = reader.nextString(); } else { reader.skipValue(); } } reader.endObject(); } else { reader.skipValue(); } } reader.endObject(); StringBuilder builder = new StringBuilder(); if (textoSalida) { builder = new StringBuilder(text); } logger.debug("id: {}", id); logger.debug("text: {}", text); logger.debug("username: {}", userName); logger.debug("screenName: {}", userScreenName); body = builder.toString().getBytes("UTF-8"); } finally { reader.close(); } } catch (UnsupportedEncodingException e) { logger.error("UTF-8 is not supported on this runtime", e); } catch (IOException e) { logger.error("Caught an IOException", e); } return body; }
From source file:com.vimeo.stag.generated.ParseUtils.java
public static <T> ArrayList<T> parseArray(Gson gson, JsonReader reader, Class<T> clazz) throws IOException { if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_ARRAY) { reader.skipValue(); return null; }//from www. jav a2s . co m reader.beginArray(); ArrayList<T> list = Stag.readListFromAdapter(gson, clazz, reader); reader.endArray(); return list; }
From source file:com.vimeo.stag.generated.ParseUtils.java
public static Channel parseChannel(Gson gson, JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();//from w ww . j a va 2 s . c o m return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); com.vimeo.networking.model.Channel object = new com.vimeo.networking.model.Channel(); while (reader.hasNext()) { String name = reader.nextName(); com.google.gson.stream.JsonToken jsonToken = reader.peek(); if (jsonToken == com.google.gson.stream.JsonToken.NULL) { reader.skipValue(); continue; } switch (name) { case "modified_time": try { object.modifiedTime = Stag.readFromAdapter(gson, java.util.Date.class, reader); } catch (Exception exception) { throw new IOException("Error parsing Channel.modifiedTime JSON!", exception); } break; case "uri": if (jsonToken == com.google.gson.stream.JsonToken.STRING) { object.uri = reader.nextString(); } else { reader.skipValue(); } break; case "metadata": try { object.metadata = ParseUtils.parseMetadata(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing Channel.metadata JSON!", exception); } break; case "created_time": try { object.createdTime = Stag.readFromAdapter(gson, java.util.Date.class, reader); } catch (Exception exception) { throw new IOException("Error parsing Channel.createdTime JSON!", exception); } break; case "user": try { object.user = ParseUtils.parseUser(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing Channel.user JSON!", exception); } break; case "header": try { object.header = ParseUtils.parsePictureCollection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing Channel.header JSON!", exception); } break; case "link": if (jsonToken == com.google.gson.stream.JsonToken.STRING) { object.link = reader.nextString(); } else { reader.skipValue(); } break; case "privacy": try { object.privacy = ParseUtils.parsePrivacy(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing Channel.privacy JSON!", exception); } break; case "name": if (jsonToken == com.google.gson.stream.JsonToken.STRING) { object.name = reader.nextString(); } else { reader.skipValue(); } break; case "pictures": try { object.pictures = ParseUtils.parsePictureCollection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing Channel.pictures JSON!", exception); } break; case "description": if (jsonToken == com.google.gson.stream.JsonToken.STRING) { object.description = reader.nextString(); } else { reader.skipValue(); } break; default: reader.skipValue(); break; } } reader.endObject(); return object; }