@Override public T read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } else { String value = reader.nextString(); return lowercaseToConstant.get(normalize(value)); } } };
/** Read a time from the Places API and convert to a {@link Instant} */ @Override public Instant read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } if (reader.peek() == JsonToken.NUMBER) { // Number is the number of seconds since Epoch. return Instant.ofEpochMilli(reader.nextLong() * 1000L); } throw new UnsupportedOperationException("Unsupported format"); }
/** * Example to readJson using StreamingAPI */ private static void readJson() throws IOException { String str = "{\"message\":\"Hi\",\"place\":{\"name\":\"World!\"}}"; InputStream in = new ByteArrayInputStream(str.getBytes(Charset.forName("UTF-8"))); JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8")); while (reader.hasNext()) { JsonToken jsonToken = reader.peek(); if(jsonToken == JsonToken.BEGIN_OBJECT) { reader.beginObject(); } else if(jsonToken == JsonToken.END_OBJECT) { reader.endObject(); } if(jsonToken == JsonToken.STRING) { System.out.print(reader.nextString() + " "); // print Hi World! } else { reader.skipValue(); } } reader.close(); }
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // In KitKat+ you should use the evaluateJavascript method mWebView.evaluateJavascript(javascript, new ValueCallback<String>() { @TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override public void onReceiveValue(String s) { JsonReader reader = new JsonReader(new StringReader(s)); // Must set lenient to parse single values reader.setLenient(true); try { if(reader.peek() != JsonToken.NULL) { if(reader.peek() == JsonToken.STRING) { String msg = reader.nextString(); if(msg != null) { Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show(); } } } } catch (IOException e) { Log.e("TAG", "MainActivity: IOException", e); } finally { try { reader.close(); } catch (IOException e) { // NOOP } } } }); }
if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; long secondsSinceEpoch = 0L; reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("text")) { reader.nextString(); } else if (name.equals("time_zone")) { timeZoneId = reader.nextString(); } else if (name.equals("value")) { secondsSinceEpoch = reader.nextLong(); reader.endObject();
/** Read a time from the Places API and convert to a {@link LocalTime} */ @Override public LocalTime read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } if (reader.peek() == JsonToken.STRING) { DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HHmm"); return LocalTime.parse(reader.nextString(), dtf); } throw new UnsupportedOperationException("Unsupported format"); }
@Override public PriceLevel read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } if (reader.peek() == JsonToken.NUMBER) { int priceLevel = reader.nextInt(); switch (priceLevel) { case 0: return PriceLevel.FREE; case 1: return PriceLevel.INEXPENSIVE; case 2: return PriceLevel.MODERATE; case 3: return PriceLevel.EXPENSIVE; case 4: return PriceLevel.VERY_EXPENSIVE; } } return PriceLevel.UNKNOWN; }
public static Set readSet(JsonReader reader) throws IOException { Set arraySet = null; reader.beginArray(); switch (reader.peek()) { case STRING: arraySet = new HashSet<>(); while (reader.hasNext()) { arraySet.add(reader.nextString()); } break; case NUMBER: arraySet = new HashSet<>(); while (reader.hasNext()) { arraySet.add(reader.nextLong()); } break; default: arraySet = new HashSet(); break; } reader.endArray(); return arraySet; }
if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; reader.beginObject(); while (reader.hasNext()) { String key = reader.nextName(); if ("currency".equals(key)) { fare.currency = Currency.getInstance(reader.nextString()); } else if ("value".equals(key)) { fare.value = new BigDecimal(reader.nextString()); } else { reader.endObject();
public T read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } else { return lowercaseToConstant.get(reader.nextString()); } } };
@Override public DayOfWeek read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } if (reader.peek() == JsonToken.NUMBER) { int day = reader.nextInt(); switch (day) { case 0: return DayOfWeek.SUNDAY; case 1: return DayOfWeek.MONDAY; case 2: return DayOfWeek.TUESDAY; case 3: return DayOfWeek.WEDNESDAY; case 4: return DayOfWeek.THURSDAY; case 5: return DayOfWeek.FRIDAY; case 6: return DayOfWeek.SATURDAY; } } return DayOfWeek.UNKNOWN; }
/** * Read a distance object from a Directions API result and convert it to a {@link Distance}. * * <p>We are expecting to receive something akin to the following: * * <pre> * { * "value": 207, "text": "0.1 mi" * } * </pre> */ @Override public Distance read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } Distance distance = new Distance(); reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("text")) { distance.humanReadable = reader.nextString(); } else if (name.equals("value")) { distance.inMeters = reader.nextLong(); } } reader.endObject(); return distance; }
@Override public T read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; } else { String nextString = reader.nextString(); try { return constructor.newInstance(nextString); } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { logger.error("Failed to instantiate uri of type {} from value {}", rawType, nextString, e); return null; } } } };
if (reader.peek() == JsonToken.NULL) { reader.nextNull(); return null; reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("text")) { duration.humanReadable = reader.nextString(); } else if (name.equals("value")) { duration.inSeconds = reader.nextLong(); reader.endObject();
@Override public Path read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull(); return null; } String result = in.nextString(); if ("".equals(result)) { return null; } return Paths.get(result); } }
@SuppressWarnings("unchecked") @Override public @Nullable M read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull(); return null; } TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class); B builder = messageAdapter.newBuilder(); in.beginObject(); while (in.peek() != JsonToken.END_OBJECT) { String name = in.nextName(); FieldBinding<M, B> fieldBinding = fieldBindings.get(name); if (fieldBinding == null) { in.skipValue(); } else { JsonElement element = elementAdapter.read(in); Object value = parseValue(fieldBinding, element); fieldBinding.set(builder, value); } } in.endObject(); return builder.build(); }
@Override public @Nullable ByteString read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull(); return null; } return ByteString.decodeBase64(in.nextString()); } }