List of usage examples for com.google.gson.stream JsonReader nextBoolean
public boolean nextBoolean() throws IOException
From source file:com.github.gv2011.jsong.JsongAdapter.java
License:Open Source License
private JsonNode deserialize(final JsonFactoryImp jf, final JsonReader in) { return call(() -> { switch (in.peek()) { case STRING: return jf.primitive(in.nextString()); case NUMBER: return jf.primitive(new BigDecimal(in.nextString())); case BOOLEAN: return jf.primitive(in.nextBoolean()); case NULL: in.nextNull();// w w w . j a v a 2 s . co m return jf.jsonNull(); case BEGIN_ARRAY: in.beginArray(); final JsonList list = XStream.fromIterator(new It(jf, in)).collect(jf.toJsonList()); in.endArray(); return list; case BEGIN_OBJECT: in.beginObject(); final JsonObject obj = XStream.fromIterator(new Itm(jf, in)).collect(jf.toJsonObject()); in.endObject(); return obj; case NAME: case END_DOCUMENT: case END_OBJECT: case END_ARRAY: default: throw new IllegalArgumentException(); } }); }
From source file:com.github.kevinsawicki.halligan.Resource.java
License:Open Source License
/** * Parse resource property/*from w ww. j a v a 2 s . com*/ * * @param reader * @param name * @throws IOException */ protected void parseProperty(final JsonReader reader, final String name) throws IOException { JsonToken next = reader.peek(); switch (next) { case BEGIN_OBJECT: properties.put(name, gson.getGson().fromJson(reader, Map.class)); break; case STRING: properties.put(name, reader.nextString()); break; case NUMBER: properties.put(name, reader.nextDouble()); break; case NULL: properties.put(name, null); reader.nextNull(); break; case BOOLEAN: properties.put(name, reader.nextBoolean()); break; default: throw new IOException("Unrecognized property value token: " + next); } }
From source file:com.github.lindenb.gatkui.Json2Xml.java
License:Open Source License
private void parse(String label, JsonReader r) throws Exception { if (!r.hasNext()) return;/*from ww w .j a v a2 s .co m*/ JsonToken token = r.peek(); switch (token) { case NAME: break; case BEGIN_OBJECT: { r.beginObject(); parseObject(label, r); break; } case END_OBJECT: { break; } case BEGIN_ARRAY: { r.beginArray(); parseArray(label, r); break; } case END_ARRAY: { break; } case NULL: { r.nextNull(); w.writeEmptyElement(NS, "null"); if (label != null) w.writeAttribute("name", label); break; } case STRING: { w.writeStartElement(NS, "string"); if (label != null) w.writeAttribute("name", label); w.writeCharacters(r.nextString()); w.writeEndElement(); break; } case NUMBER: { w.writeStartElement(NS, "number"); if (label != null) w.writeAttribute("name", label); String s; try { s = String.valueOf(r.nextLong()); } catch (Exception err) { s = String.valueOf(r.nextDouble()); } w.writeCharacters(s); w.writeEndElement(); break; } case BOOLEAN: { w.writeStartElement(NS, "boolean"); if (label != null) w.writeAttribute("name", label); w.writeCharacters(String.valueOf(r.nextBoolean())); w.writeEndElement(); break; } case END_DOCUMENT: { break; } default: throw new IllegalStateException(token.name()); } }
From source file:com.gs.reladomo.serial.gson.GsonWrappedListTypedAdapter.java
License:Apache License
@Override public SerializedList<U, T> read(JsonReader jsonReader) throws IOException { ReladomoDeserializer deserializer;/* w ww .j a va 2 s . c o m*/ if (this.typeClass == null) { deserializer = new ReladomoDeserializer(); } else { deserializer = new ReladomoDeserializer(typeClass); } deserializer.setIgnoreUnknown(); JsonDeserializerState state = JsonDeserializerState.ListStartState.INSTANCE; while (true) { JsonToken nextToken = jsonReader.peek(); //BEGIN_ARRAY, END_ARRAY, BEGIN_OBJECT, END_OBJECT, NAME, STRING, NUMBER, BOOLEAN, NULL, END_DOCUMENT; if (JsonToken.BEGIN_OBJECT == nextToken) { jsonReader.beginObject(); state = state.startObject(deserializer); } else if (JsonToken.END_OBJECT == nextToken) { jsonReader.endObject(); state = state.endObject(deserializer); } else if (JsonToken.BEGIN_ARRAY == nextToken) { jsonReader.beginArray(); state = state.startArray(deserializer); } else if (JsonToken.END_ARRAY == nextToken) { jsonReader.endArray(); state = state.endArray(deserializer); } else if (JsonToken.BOOLEAN == nextToken) { if (jsonReader.nextBoolean()) { state = state.valueTrue(deserializer); } else { state = state.valueFalse(deserializer); } } else if (JsonToken.NAME == nextToken) { String name = jsonReader.nextName(); state = state.fieldName(name, deserializer); } else if (JsonToken.NUMBER == nextToken) { String value = jsonReader.nextString(); state = state.valueString(value, deserializer); // we do the parsing to avoid precision loss } else if (JsonToken.STRING == nextToken) { String value = jsonReader.nextString(); Attribute attribute = deserializer.getCurrentAttribute(); if (attribute instanceof TimestampAttribute) { Timestamp timestamp = GsonReladomoTypeAdapterSerialWriter.jsonToTimestamp(value); state = state.valueTimestamp(timestamp, deserializer); } else { state = state.valueString(value, deserializer); } } else if (JsonToken.NULL == nextToken) { jsonReader.nextNull(); state = state.valueNull(deserializer); } else if (JsonToken.END_DOCUMENT == nextToken) { break; } } return deserializer.getDeserializedResultAsList(); }
From source file:com.gs.reladomo.serial.gson.GsonWrappedTypedAdapter.java
License:Apache License
@Override public Serialized<T> read(JsonReader jsonReader) throws IOException { ReladomoDeserializer deserializer;//from w w w . j av a 2 s.c om if (this.typeClass == null) { deserializer = new ReladomoDeserializer(); } else { deserializer = new ReladomoDeserializer(typeClass); } deserializer.setIgnoreUnknown(); JsonDeserializerState state = JsonDeserializerState.NormalParserState.INSTANCE; while (true) { JsonToken nextToken = jsonReader.peek(); //BEGIN_ARRAY, END_ARRAY, BEGIN_OBJECT, END_OBJECT, NAME, STRING, NUMBER, BOOLEAN, NULL, END_DOCUMENT; if (JsonToken.BEGIN_OBJECT == nextToken) { jsonReader.beginObject(); state = state.startObject(deserializer); } else if (JsonToken.END_OBJECT == nextToken) { jsonReader.endObject(); state = state.endObject(deserializer); } else if (JsonToken.BEGIN_ARRAY == nextToken) { jsonReader.beginArray(); state = state.startArray(deserializer); } else if (JsonToken.END_ARRAY == nextToken) { jsonReader.endArray(); state = state.endArray(deserializer); } else if (JsonToken.BOOLEAN == nextToken) { if (jsonReader.nextBoolean()) { state = state.valueTrue(deserializer); } else { state = state.valueFalse(deserializer); } } else if (JsonToken.NAME == nextToken) { String name = jsonReader.nextName(); state = state.fieldName(name, deserializer); } else if (JsonToken.NUMBER == nextToken) { String value = jsonReader.nextString(); state = state.valueString(value, deserializer); // we do the parsing to avoid precision loss } else if (JsonToken.STRING == nextToken) { String value = jsonReader.nextString(); Attribute attribute = deserializer.getCurrentAttribute(); if (attribute instanceof TimestampAttribute) { Timestamp timestamp = GsonReladomoTypeAdapterSerialWriter.jsonToTimestamp(value); state = state.valueTimestamp(timestamp, deserializer); } else { state = state.valueString(value, deserializer); } } else if (JsonToken.NULL == nextToken) { jsonReader.nextNull(); state = state.valueNull(deserializer); } else if (JsonToken.END_DOCUMENT == nextToken) { break; } } return deserializer.getDeserializedResult(); }
From source file:com.ibm.watson.developer_cloud.tradeoff_analytics.v1.util.ColumnTypeAdapter.java
License:Open Source License
@Override public Column read(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull();/* www.j a v a 2 s. c o m*/ return null; } ColumnType type = ColumnType.TEXT; Goal goal = null; Boolean objective = null; String key = null, format = null, description = null, fullName = null, low = null, high = null; Double significantGain = null, significantLoss = null, insignificantLoss = null; List<String> categoricalRange = null, categoricalPreference = null; reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals(TYPE2)) { type = ColumnType.fromString(reader.nextString()); } else if (name.equals(KEY)) { key = reader.nextString(); } else if (name.equals(GOAL)) { goal = Goal.fromString(reader.nextString()); } else if (name.equals(IS_OBJECTIVE)) { objective = reader.nextBoolean(); } else if (name.equals(FORMAT)) { format = reader.nextString(); } else if (name.equals(DESCRIPTION)) { description = reader.nextString(); } else if (name.equals(FULL_NAME)) { fullName = reader.nextString(); } else if (name.equals(SIGNIFICANT_GAIN)) { significantGain = reader.nextDouble(); } else if (name.equals(SIGNIFICANT_LOSS)) { significantLoss = reader.nextDouble(); } else if (name.equals(INSIGNIFICANT_LOSS)) { insignificantLoss = reader.nextDouble(); } else if (name.equals("preference")) { reader.beginArray(); categoricalPreference = new ArrayList<String>(); while (reader.hasNext()) { categoricalPreference.add(reader.nextString()); } reader.endArray(); } else if (name.equals(RANGE)) { if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) { reader.beginArray(); categoricalRange = new ArrayList<String>(); while (reader.hasNext()) { categoricalRange.add(reader.nextString()); } reader.endArray(); } else { reader.beginObject(); while (reader.hasNext()) { name = reader.nextName(); if (name.equals(LOW)) { low = reader.nextString(); } else if (name.equals(HIGH)) { high = reader.nextString(); } else { reader.skipValue(); } } reader.endObject(); } } else { reader.skipValue(); } } reader.endObject(); Column column; if (type == ColumnType.CATEGORICAL) { column = new CategoricalColumn(); if (categoricalRange != null) { ((CategoricalColumn) column).setRange(categoricalRange); } if (categoricalPreference != null) { ((CategoricalColumn) column).setRange(categoricalPreference); } } else if (type == ColumnType.DATETIME) { column = new DateColumn(); if (low != null) { try { ((DateColumn) column).withRange(DATE_FORMATTER.parse(low), DATE_FORMATTER.parse(high)); } catch (final ParseException e) { LOG.log(Level.SEVERE, "Error parsing the date", e); } } } else if (type == ColumnType.NUMERIC) { column = new NumericColumn(); if (low != null) { ((NumericColumn) column).range(Double.valueOf(low), Double.valueOf(high)); } } else { column = new TextColumn(); } column.setKey(key); if (description != null) { column.setDescription(description); } if (format != null) { column.setFormat(format); } if (objective != null) { column.setObjective(objective); } if (fullName != null) { column.setFullName(fullName); } if (goal != null) { column.setGoal(goal); } if (key != null) { column.setKey(key); } if (significantGain != null) { column.setSignificantGain(significantGain); } if (significantLoss != null) { column.setSignificantLoss(insignificantLoss); } if (insignificantLoss != null) { column.setInsignificantLoss(insignificantLoss); } return column; }
From source file:com.ibm.watson.discovery.v1.query.AggregationDeserializer.java
License:Open Source License
/** * Checks the next {@link JsonToken} to decide the next appropriate parsing method. * * @param in {@link JsonReader} object used for parsing * @param objMap Map used to build the structure for the resulting {@link QueryAggregation} object * @throws IOException signals that there has been an IO exception *//*from ww w .java2 s .c o m*/ private void parseNext(JsonReader in, HashMap<String, Object> objMap) throws IOException { JsonToken token = in.peek(); String lastName = ""; if (token == JsonToken.NAME) { lastName = in.nextName(); token = in.peek(); } switch (token) { case BEGIN_ARRAY: parseArray(in, objMap, lastName); break; case BEGIN_OBJECT: parseObject(in, objMap, lastName); break; case STRING: objMap.put(lastName, in.nextString()); break; case NUMBER: objMap.put(lastName, in.nextDouble()); break; case BOOLEAN: objMap.put(lastName, in.nextBoolean()); break; default: throw new IOException("Unexpected JSON token encountered"); } collapseMap(objMap); }
From source file:com.nridge.core.io.gson.DataFieldJSON.java
License:Open Source License
private void assignFieldNameValue(DataField aField, String aName, JsonReader aReader) throws IOException { if (StringUtils.equals(aName, IO.JSON_TITLE_MEMBER_NAME)) aField.setTitle(aReader.nextString()); else if (StringUtils.equals(aName, "displaySize")) aField.setDisplaySize(aReader.nextInt()); else if (StringUtils.equals(aName, "defaultValue")) aField.setDefaultValue(aReader.nextString()); else if (StringUtils.equals(aName, "sortOrder")) aField.setSortOrder(Field.Order.valueOf(aReader.nextString())); else if (StringUtils.equals(aName, "isMultiValue")) aField.setMultiValueFlag(aReader.nextBoolean()); else if (StringUtils.equals(aName, IO.JSON_RANGE_OBJECT_NAME)) aField.setRange(mRangeJSON.load(aReader)); else if (StringUtils.equals(aName, IO.JSON_FEATURES_ARRAY_NAME)) { String jsonName, jsonValue; aReader.beginObject();/*from w w w. ja va 2s . co m*/ while (aReader.hasNext()) { jsonName = aReader.nextName(); jsonValue = aReader.nextString(); aField.addFeature(jsonName, jsonValue); } aReader.endObject(); } else if (StringUtils.equals(aName, IO.JSON_VALUE_MEMBER_NAME)) { String jsonValue = aReader.nextString(); if (aField.isMultiValue()) { String mvDelimiter = aField.getFeature(Field.FEATURE_MV_DELIMITER); if (StringUtils.isNotEmpty(mvDelimiter)) aField.expand(jsonValue, mvDelimiter.charAt(0)); else aField.expand(jsonValue); } else aField.setValue(jsonValue); } }
From source file:com.nridge.core.io.gson.JSONDocument.java
License:Open Source License
/** * Parses an JSON stream and loads it into an internally managed * document instance.//from w w w . j a va2s . c om * * @param aReader Json reader stream instance. * * @throws IOException I/O related exception. */ private void loadDocument(JsonReader aReader, Document aDocument) throws IOException { DataBag dataBag; JsonToken jsonToken; DataField dataField; String jsonName, jsonValue, jsonTitle; aReader.beginObject(); jsonToken = aReader.peek(); while (jsonToken == JsonToken.NAME) { jsonName = aReader.nextName(); jsonTitle = Field.nameToTitle(jsonName); jsonToken = aReader.peek(); switch (jsonToken) { case BOOLEAN: dataBag = aDocument.getBag(); dataField = new DataField(jsonName, jsonTitle, aReader.nextBoolean()); dataBag.add(dataField); break; case NUMBER: dataBag = aDocument.getBag(); jsonValue = aReader.nextString(); if (StringUtils.contains(jsonValue, StrUtl.CHAR_DOT)) dataField = new DataField(jsonName, jsonTitle, Double.valueOf(jsonValue)); else dataField = new DataField(jsonName, jsonTitle, Long.valueOf(jsonValue)); dataBag.add(dataField); break; case STRING: dataBag = aDocument.getBag(); jsonValue = aReader.nextString(); Date dateValue = DatUtl.detectCreateDate(jsonValue); if (dateValue != null) dataField = new DataField(jsonName, jsonTitle, dateValue); else dataField = new DataField(Field.Type.Text, jsonName, jsonTitle, jsonValue); dataBag.add(dataField); break; case NULL: dataBag = aDocument.getBag(); aReader.nextNull(); dataField = new DataField(Field.Type.Text, jsonName, jsonTitle); dataBag.add(dataField); break; case BEGIN_ARRAY: aReader.beginArray(); if (isNextTokenAnObject(aReader)) { Document childDocument = new Document(jsonTitle); childDocument.setName(jsonName); aDocument.addRelationship(jsonTitle, childDocument); loadDocumentArray(aReader, childDocument); } else { dataBag = aDocument.getBag(); dataField = new DataField(Field.Type.Text, jsonName, jsonTitle); jsonToken = aReader.peek(); while (jsonToken != JsonToken.END_ARRAY) { jsonValue = aReader.nextString(); dataField.addValue(jsonValue); jsonToken = aReader.peek(); } dataBag.add(dataField); } aReader.endArray(); break; case BEGIN_OBJECT: Document childDocument = new Document(jsonTitle); childDocument.setName(jsonName); aDocument.addRelationship(jsonTitle, childDocument); loadDocument(aReader, childDocument); break; default: aReader.skipValue(); break; } jsonToken = aReader.peek(); } aReader.endObject(); }
From source file:com.nridge.ds.solr.SolrConfigJSON.java
License:Open Source License
private String nextValueAsString(JsonReader aReader) throws IOException { String valueString = StringUtils.EMPTY; JsonToken jsonToken = aReader.peek(); switch (jsonToken) { case BOOLEAN: valueString = StrUtl.booleanToString(aReader.nextBoolean()); break;/*from w w w. ja v a2s . com*/ case NUMBER: case STRING: valueString = Solr.cleanContent(aReader.nextString()); break; default: aReader.skipValue(); break; } return valueString; }