List of usage examples for com.google.gson.stream JsonReader beginObject
public void beginObject() throws IOException
From source file:com.squareup.wire.MessageTypeAdapter.java
License:Apache License
@SuppressWarnings("unchecked") @Override//from ww w.j a v a 2 s. co m public M read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull(); return null; } MessageAdapter<M> messageAdapter = wire.messageAdapter(type); Message.Builder<M> builder = messageAdapter.newBuilder(); in.beginObject(); while (in.peek() == JsonToken.NAME) { String name = in.nextName(); MessageAdapter.FieldInfo fieldInfo = messageAdapter.getField(name); if (fieldInfo == null) { Extension<?, ?> extension = messageAdapter.getExtension(name); if (extension == null) { parseUnknownField(in, builder, Integer.parseInt(name)); } else { Type valueType = getType(extension); Object value = parseValue(extension.getLabel(), valueType, parse(in)); ((ExtendableMessage.ExtendableBuilder) builder).setExtension(extension, value); } } else { Type valueType = getType(fieldInfo); Object value = parseValue(fieldInfo.label, valueType, parse(in)); // Use the builder setter method to ensure proper 'oneof' behavior. messageAdapter.setBuilderMethod(builder, fieldInfo, value); } } in.endObject(); return builder.build(); }
From source file:com.suny.whereami.service.google.Place.java
License:Open Source License
/** * Read fields from a result object./*from ww w .java2s .c o 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 w ww. j av a 2 s .com*/ * @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.triarc.sync.SyncAdapter.java
License:Apache License
@SuppressLint("NewApi") private void readResponse(SyncTypeCollection typeCollection, InputStream inputStream, HttpResponse response) throws UnsupportedEncodingException, IOException, JSONException, Exception { long lastUpdate = 0; Header header = response.getFirstHeader("X-Application-Timestamp"); if (header != null) { String value = header.getValue(); lastUpdate = Long.parseLong(value); }//w w w .ja v a2 s. c o m // json is UTF-8 by default BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8); JsonStreamParser parser = new JsonStreamParser(reader); JsonReader jsonReader = new JsonReader(reader); jsonReader.beginObject(); jsonReader.nextName(); jsonReader.beginObject(); while (jsonReader.hasNext()) { String syncName = jsonReader.nextName(); SyncType syncType = this.GetSyncType(typeCollection, syncName); JsonElement fromJson = new Gson().fromJson(jsonReader, JsonElement.class); updateLocalTypeData(fromJson.getAsJsonObject(), syncType, typeCollection, syncResult); notificationQueue.add(new SyncNotificationMessage(syncType, fromJson.toString())); // String path = jsonReader.getPath(); // String nextName = jsonReader.nextName(); // jsonReader.endObject(); } jsonReader.endObject(); // String json = getStringForReader(reader); // // // JSONObject syncChangeSets = new JSONObject(json) // .getJSONObject("changeSetPerType"); // // // first save all // for (SyncType syncType : typeCollection.getTypes()) { // syncResult.madeSomeProgress(); // String name = syncType.getName(); // // if (syncChangeSets.has(name)) { // JSONObject changeSetObject = syncChangeSets.getJSONObject(name); // updateLocalTypeData(changeSetObject, syncType, typeCollection, // syncResult); // notificationMap.put(syncType, changeSetObject); // } else { // Log.w(TAG, "Server does not support syncing of " + name); // sendLogs(); // } // } // store collection update timestamp PreferenceManager.getDefaultSharedPreferences(this.getContext()).edit() .putLong(typeCollection.getName(), lastUpdate).commit(); // then notify all notifyWebApp(); }
From source file:com.utad.flume.interceptor.InterceptorTwitter.java
License:Apache License
private byte[] readJsonStream(InputStream is) { byte[] body = null; try {// www. java2 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("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 www .j a va2 s .com*/ 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 Channel parseChannel(Gson gson, JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();/*from ww w. j a v a 2s .co 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; }
From source file:com.vimeo.stag.generated.ParseUtils.java
public static StatsCollection parseStatsCollection(Gson gson, JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();//from ww w. j av a 2 s .c om return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); com.vimeo.networking.model.StatsCollection object = new com.vimeo.networking.model.StatsCollection(); 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 "plays": try { object.plays = Stag.readFromAdapter(gson, java.lang.Integer.class, reader); } catch (Exception exception) { throw new IOException("Error parsing StatsCollection.plays JSON!", exception); } break; default: reader.skipValue(); break; } } reader.endObject(); return object; }
From source file:com.vimeo.stag.generated.ParseUtils.java
public static CategoryList parseCategoryList(Gson gson, JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();//ww w .j ava 2 s . co m return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); com.vimeo.networking.model.CategoryList object = new com.vimeo.networking.model.CategoryList(); 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 "total": if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) { object.total = reader.nextInt(); } else { reader.skipValue(); } break; case "per_page": if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) { object.perPage = reader.nextInt(); } else { reader.skipValue(); } break; case "page": if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) { object.page = reader.nextInt(); } else { reader.skipValue(); } break; case "data": if (jsonToken == com.google.gson.stream.JsonToken.BEGIN_ARRAY) { object.data = ParseUtils.parseArray(gson, reader, com.vimeo.networking.model.Category.class); } else { reader.skipValue(); } break; case "paging": try { object.paging = ParseUtils.parsePaging(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing CategoryList.paging JSON!", exception); } break; default: reader.skipValue(); break; } } reader.endObject(); return object; }
From source file:com.vimeo.stag.generated.ParseUtils.java
public static ConnectionCollection parseConnectionCollection(Gson gson, JsonReader reader) throws IOException { if (reader.peek() == com.google.gson.stream.JsonToken.NULL) { reader.nextNull();// w w w . java 2 s. co m return null; } if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) { reader.skipValue(); return null; } reader.beginObject(); com.vimeo.networking.model.ConnectionCollection object = new com.vimeo.networking.model.ConnectionCollection(); 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 "appearances": try { object.appearances = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.appearances JSON!", exception); } break; case "trailer": try { object.trailer = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.trailer JSON!", exception); } break; case "ondemand": try { object.ondemand = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.ondemand JSON!", exception); } break; case "videos": try { object.videos = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.videos JSON!", exception); } break; case "feed": try { object.feed = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.feed JSON!", exception); } break; case "credits": try { object.credits = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.credits JSON!", exception); } break; case "shared": try { object.shared = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.shared JSON!", exception); } break; case "categories": try { object.categories = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.categories JSON!", exception); } break; case "recommendations": try { object.recommendations = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.recommendations JSON!", exception); } break; case "recommended_users": try { object.recommendedUsers = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.recommendedUsers JSON!", exception); } break; case "replies": try { object.replies = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.replies JSON!", exception); } break; case "comments": try { object.comments = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.comments JSON!", exception); } break; case "groups": try { object.groups = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.groups JSON!", exception); } break; case "watchlater": try { object.watchlater = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.watchlater JSON!", exception); } break; case "texttracks": try { object.texttracks = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.texttracks JSON!", exception); } break; case "likes": try { object.likes = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.likes JSON!", exception); } break; case "activities": try { object.activities = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.activities JSON!", exception); } break; case "moderated_channels": try { object.moderatedChannels = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.moderatedChannels JSON!", exception); } break; case "related": try { object.related = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.related JSON!", exception); } break; case "users": try { object.users = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.users JSON!", exception); } break; case "following": try { object.following = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.following JSON!", exception); } break; case "pictures": try { object.pictures = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.pictures JSON!", exception); } break; case "followers": try { object.followers = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.followers JSON!", exception); } break; case "albums": try { object.albums = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.albums JSON!", exception); } break; case "channels": try { object.channels = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.channels JSON!", exception); } break; case "playback": try { object.playbackFailureReason = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.playbackFailureReason JSON!", exception); } break; case "recommended_channels": try { object.recommendedChannels = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.recommendedChannels JSON!", exception); } break; case "portfolios": try { object.portfolios = ParseUtils.parseConnection(gson, reader); } catch (Exception exception) { throw new IOException("Error parsing ConnectionCollection.portfolios JSON!", exception); } break; default: reader.skipValue(); break; } } reader.endObject(); return object; }