List of usage examples for com.google.gson.stream JsonReader nextInt
public int nextInt() throws IOException
From source file:com.javacreed.examples.gson.part4.BookTypeAdapter.java
License:Apache License
@Override public Book read(final JsonReader in) throws IOException { final Book book = new Book(); in.beginObject();//w w w. j a v a 2 s . c o m while (in.hasNext()) { switch (in.nextName()) { case "isbn": book.setIsbn(in.nextString()); break; case "title": book.setTitle(in.nextString()); break; case "authors": in.beginArray(); final List<Author> authors = new ArrayList<>(); while (in.hasNext()) { in.beginObject(); final Author author = new Author(); while (in.hasNext()) { switch (in.nextName()) { case "id": author.setId(in.nextInt()); break; case "name": author.setName(in.nextString()); break; } } authors.add(author); in.endObject(); } book.setAuthors(authors.toArray(new Author[authors.size()])); in.endArray(); break; } } in.endObject(); return book; }
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 ww w . j a v a 2 s. c o 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.DataTableJSON.java
License:Open Source License
/** * Parses an JSON stream and loads it into a bag/table. * * @param aReader Json reader stream instance. * * @throws java.io.IOException I/O related exception. *//*from ww w . j a v a 2 s. co m*/ public void load(JsonReader aReader) throws IOException { int columnOffset; FieldRow fieldRow; DataField dataField; String jsonName, jsonValue, mvDelimiter; resetContext(); aReader.beginObject(); while (aReader.hasNext()) { jsonName = aReader.nextName(); if (StringUtils.equals(jsonName, IO.JSON_NAME_MEMBER_NAME)) mDataTable.setName(aReader.nextString()); else if (StringUtils.equals(jsonName, IO.JSON_CONTEXT_OBJECT_NAME)) { aReader.beginObject(); while (aReader.hasNext()) { jsonName = aReader.nextName(); if (StringUtils.equals(jsonName, IO.JSON_START_MEMBER_NAME)) mContextStart = aReader.nextInt(); else if (StringUtils.equals(jsonName, IO.JSON_LIMIT_MEMBER_NAME)) mContextLimit = aReader.nextInt(); else if (StringUtils.equals(jsonName, IO.JSON_TOTAL_MEMBER_NAME)) mContextTotal = aReader.nextInt(); else aReader.skipValue(); } aReader.endObject(); } else if (StringUtils.equals(jsonName, IO.JSON_BAG_OBJECT_NAME)) { DataBagJSON dataBagJSON = new DataBagJSON(); dataBagJSON.load(aReader); mDataTable.setColumns(dataBagJSON.getBag()); } else if (StringUtils.equals(jsonName, IO.JSON_ROWS_ARRAY_NAME)) { aReader.beginArray(); while (aReader.hasNext()) { columnOffset = 0; fieldRow = mDataTable.newRow(); aReader.beginObject(); while (aReader.hasNext()) { jsonName = aReader.nextName(); if (StringUtils.equals(jsonName, IO.JSON_CELL_MEMBER_NAME)) { jsonValue = aReader.nextString(); dataField = mDataTable.getColumn(columnOffset); if (dataField != null) { if (dataField.isMultiValue()) { mvDelimiter = dataField.getFeature(Field.FEATURE_MV_DELIMITER); if (StringUtils.isNotEmpty(mvDelimiter)) fieldRow.setValues(columnOffset, StrUtl.expandToList(jsonValue, mvDelimiter.charAt(0))); else fieldRow.setValues(columnOffset, StrUtl.expandToList(jsonValue, StrUtl.CHAR_PIPE)); } else fieldRow.setValue(columnOffset, jsonValue); columnOffset++; } } else aReader.skipValue(); } aReader.endObject(); mDataTable.addRow(fieldRow); } aReader.endArray(); } else aReader.skipValue(); } aReader.endObject(); }
From source file:com.nridge.core.io.gson.RangeJSON.java
License:Open Source License
/** * Parses an JSON stream and loads it into a field range. * * @param aReader Json reader stream instance. * * @throws java.io.IOException I/O related exception. */// w ww.j a v a 2s. c o m public FieldRange load(JsonReader aReader) throws IOException { String jsonName; boolean isFirst = true; Date firstDate = new Date(); long firstLong = Long.MIN_VALUE; int firstInt = Integer.MIN_VALUE; double firstDouble = Double.MIN_VALUE; Field.Type rangeType = Field.Type.Text; FieldRange fieldRange = new FieldRange(); aReader.beginObject(); while (aReader.hasNext()) { jsonName = aReader.nextName(); if (StringUtils.equals(jsonName, IO.JSON_TYPE_MEMBER_NAME)) rangeType = Field.stringToType(aReader.nextString()); else if (StringUtils.equals(jsonName, IO.JSON_DELIMITER_MEMBER_NAME)) fieldRange.setDelimiterChar(aReader.nextString()); else if (StringUtils.equals(jsonName, IO.JSON_VALUE_MEMBER_NAME)) fieldRange.setItems(StrUtl.expandToList(aReader.nextString(), fieldRange.getDelimiterChar())); else if (StringUtils.equals(jsonName, "min")) { switch (rangeType) { case Long: if (isFirst) { isFirst = false; firstLong = aReader.nextLong(); } else fieldRange = new FieldRange(aReader.nextLong(), firstLong); break; case Integer: if (isFirst) { isFirst = false; firstInt = aReader.nextInt(); } else fieldRange = new FieldRange(aReader.nextInt(), firstInt); break; case Double: if (isFirst) { isFirst = false; firstDouble = aReader.nextDouble(); } else fieldRange = new FieldRange(aReader.nextDouble(), firstDouble); break; case DateTime: if (isFirst) { isFirst = false; firstDate = Field.createDate(aReader.nextString()); } else fieldRange = new FieldRange(Field.createDate(aReader.nextString()), firstDate); break; default: aReader.skipValue(); break; } } else if (StringUtils.equals(jsonName, "max")) { switch (rangeType) { case Long: if (isFirst) { isFirst = false; firstLong = aReader.nextLong(); } else fieldRange = new FieldRange(firstLong, aReader.nextLong()); break; case Integer: if (isFirst) { isFirst = false; firstInt = aReader.nextInt(); } else fieldRange = new FieldRange(firstInt, aReader.nextInt()); break; case Double: if (isFirst) { isFirst = false; firstDouble = aReader.nextDouble(); } else fieldRange = new FieldRange(firstDouble, aReader.nextDouble()); break; case DateTime: if (isFirst) { isFirst = false; firstDate = Field.createDate(aReader.nextString()); } else fieldRange = new FieldRange(firstDate, Field.createDate(aReader.nextString())); break; default: aReader.skipValue(); break; } } else aReader.skipValue(); } aReader.endObject(); return fieldRange; }
From source file:com.nridge.ds.solr.SolrCollection.java
License:Open Source License
private void parseReply(String aMessage) throws DSException, IOException { String jsonName;/*w w w.j av a 2s. co m*/ Logger appLogger = mAppMgr.getLogger(this, "parseReply"); appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER); int msgCode = 0; String msgString = StringUtils.EMPTY; StringReader stringReader = new StringReader(aMessage); JsonReader jsonReader = new JsonReader(stringReader); jsonReader.beginObject(); while (jsonReader.hasNext()) { jsonName = jsonReader.nextName(); if (StringUtils.equals(jsonName, "exception")) { jsonReader.beginObject(); while (jsonReader.hasNext()) { jsonName = jsonReader.nextName(); if (StringUtils.equals(jsonName, "msg")) msgString = jsonReader.nextString(); else if (StringUtils.equals(jsonName, "rspCode")) msgCode = jsonReader.nextInt(); else jsonReader.skipValue(); } jsonReader.endObject(); } else jsonReader.skipValue(); } jsonReader.endObject(); if (StringUtils.isNotEmpty(msgString)) throw new DSException(String.format("Solr Exception [%d]: %s", msgCode, msgString)); appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART); }
From source file:com.patloew.countries.util.JsonUtils.java
License:Apache License
public static Integer readNullSafeInteger(JsonReader reader) throws IOException { if (reader.peek() == JsonToken.NULL) { reader.nextNull();//from w ww .j a va 2 s. c o m return null; } else { return reader.nextInt(); } }
From source file:com.replaymod.replaystudio.pathing.serialize.LegacyKeyframeSetAdapter.java
License:MIT License
@SuppressWarnings("unchecked") @Override//from w w w.j a v a 2s . c om public KeyframeSet[] read(JsonReader in) throws IOException { List<KeyframeSet> sets = new ArrayList<>(); in.beginArray(); while (in.hasNext()) { //iterate over all array entries KeyframeSet set = new KeyframeSet(); List<Keyframe> positionKeyframes = new ArrayList<>(); List<Keyframe> timeKeyframes = new ArrayList<>(); in.beginObject(); while (in.hasNext()) { //iterate over all object entries String jsonTag = in.nextName(); if ("name".equals(jsonTag)) { set.name = in.nextString(); //TODO: Adapt to new Spectator Keyframe system } else if ("positionKeyframes".equals(jsonTag)) { in.beginArray(); while (in.hasNext()) { Keyframe<AdvancedPosition> newKeyframe = new Keyframe<>(); Integer spectatedEntityID = null; in.beginObject(); while (in.hasNext()) { String jsonKeyframeTag = in.nextName(); if ("value".equals(jsonKeyframeTag) || "position".equals(jsonKeyframeTag)) { SpectatorData spectatorData = new Gson().fromJson(in, SpectatorData.class); if (spectatorData.spectatedEntityID != null) { newKeyframe.value = spectatorData; } else { newKeyframe.value = new AdvancedPosition(); newKeyframe.value.x = spectatorData.x; newKeyframe.value.y = spectatorData.y; newKeyframe.value.z = spectatorData.z; newKeyframe.value.yaw = spectatorData.yaw; newKeyframe.value.pitch = spectatorData.pitch; newKeyframe.value.roll = spectatorData.roll; } } else if ("realTimestamp".equals(jsonKeyframeTag)) { newKeyframe.realTimestamp = in.nextInt(); } else if ("spectatedEntityID".equals(jsonKeyframeTag)) { spectatedEntityID = in.nextInt(); } } if (spectatedEntityID != null) { AdvancedPosition pos = newKeyframe.value; SpectatorData spectatorData = new SpectatorData(); spectatorData.spectatedEntityID = spectatedEntityID; newKeyframe.value = spectatorData; newKeyframe.value.x = pos.x; newKeyframe.value.y = pos.y; newKeyframe.value.z = pos.z; newKeyframe.value.yaw = pos.yaw; newKeyframe.value.pitch = pos.pitch; newKeyframe.value.roll = pos.roll; } in.endObject(); positionKeyframes.add(newKeyframe); } in.endArray(); } else if ("timeKeyframes".equals(jsonTag)) { in.beginArray(); while (in.hasNext()) { Keyframe<TimestampValue> newKeyframe = new Keyframe<>(); in.beginObject(); while (in.hasNext()) { String jsonKeyframeTag = in.nextName(); if ("timestamp".equals(jsonKeyframeTag)) { TimestampValue timestampValue = new TimestampValue(); timestampValue.value = in.nextInt(); newKeyframe.value = timestampValue; } else if ("value".equals(jsonKeyframeTag)) { newKeyframe.value = new Gson().fromJson(in, TimestampValue.class); } else if ("realTimestamp".equals(jsonKeyframeTag)) { newKeyframe.realTimestamp = in.nextInt(); } } in.endObject(); timeKeyframes.add(newKeyframe); } in.endArray(); } else if ("customObjects".equals(jsonTag)) { set.customObjects = new Gson().fromJson(in, CustomImageObject[].class); } } in.endObject(); set.positionKeyframes = positionKeyframes.toArray(new Keyframe[positionKeyframes.size()]); set.timeKeyframes = timeKeyframes.toArray(new Keyframe[timeKeyframes.size()]); sets.add(set); } in.endArray(); return sets.toArray(new KeyframeSet[sets.size()]); }
From source file:com.replaymod.replaystudio.pathing.serialize.TimelineSerialization.java
License:MIT License
public Map<String, Timeline> deserialize(String serialized) throws IOException { JsonReader reader = new JsonReader(new StringReader(serialized)); Map<String, Timeline> timelines = new LinkedHashMap<>(); reader.beginObject();/*from www .j av a 2s .c om*/ while (reader.hasNext()) { Timeline timeline = registry.createTimeline(); timelines.put(reader.nextName(), timeline); reader.beginArray(); while (reader.hasNext()) { Path path = timeline.createPath(); reader.beginObject(); List<Integer> segments = new ArrayList<>(); List<Interpolator> interpolators = new ArrayList<>(); while (reader.hasNext()) { switch (reader.nextName()) { case "keyframes": reader.beginArray(); while (reader.hasNext()) { long time = 0; Map<Property, Object> properties = new HashMap<>(); reader.beginObject(); while (reader.hasNext()) { switch (reader.nextName()) { case "time": time = reader.nextLong(); break; case "properties": reader.beginObject(); while (reader.hasNext()) { String id = reader.nextName(); Property property = timeline.getProperty(id); if (property == null) { throw new IOException("Unknown property: " + id); } Object value = property.fromJson(reader); properties.put(property, value); } reader.endObject(); break; } } reader.endObject(); Keyframe keyframe = path.insert(time); for (Map.Entry<Property, Object> entry : properties.entrySet()) { keyframe.setValue(entry.getKey(), entry.getValue()); } } reader.endArray(); break; case "segments": reader.beginArray(); while (reader.hasNext()) { if (reader.peek() == JsonToken.NULL) { reader.nextNull(); segments.add(null); } else { segments.add(reader.nextInt()); } } reader.endArray(); break; case "interpolators": reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); Interpolator interpolator = null; Set<String> properties = new HashSet<>(); while (reader.hasNext()) { switch (reader.nextName()) { case "type": interpolator = registry.deserializeInterpolator(reader); break; case "properties": reader.beginArray(); while (reader.hasNext()) { properties.add(reader.nextString()); } reader.endArray(); break; } } if (interpolator == null) { throw new IOException("Missing interpolator type"); } for (String propertyName : properties) { Property property = timeline.getProperty(propertyName); if (property == null) { throw new IOException("Timeline does not know property '" + propertyName + "'"); } interpolator.registerProperty(property); } interpolators.add(interpolator); reader.endObject(); } reader.endArray(); break; } } Iterator<Integer> iter = segments.iterator(); for (PathSegment segment : path.getSegments()) { Integer next = iter.next(); if (next != null) { segment.setInterpolator(interpolators.get(next)); } } reader.endObject(); } reader.endArray(); } reader.endObject(); return timelines; }
From source file:com.sap.core.odata.core.ep.consumer.JsonFeedConsumer.java
License:Apache License
protected static void readInlineCount(final JsonReader reader, final FeedMetadataImpl feedMetadata) throws IOException, EntityProviderException { if (reader.peek() == JsonToken.STRING && feedMetadata.getInlineCount() == null) { int inlineCount; try {// w w w .java2 s . co m inlineCount = reader.nextInt(); } catch (final NumberFormatException e) { throw new EntityProviderException(EntityProviderException.INLINECOUNT_INVALID.addContent(""), e); } if (inlineCount >= 0) { feedMetadata.setInlineCount(inlineCount); } else { throw new EntityProviderException( EntityProviderException.INLINECOUNT_INVALID.addContent(inlineCount)); } } else { throw new EntityProviderException( EntityProviderException.INLINECOUNT_INVALID.addContent(reader.peek())); } }
From source file:com.sap.core.odata.core.ep.consumer.JsonPropertyConsumer.java
License:Apache License
private Object readSimpleProperty(final JsonReader reader, final EntityPropertyInfo entityPropertyInfo, final Object typeMapping) throws EdmException, EntityProviderException, IOException { final EdmSimpleType type = (EdmSimpleType) entityPropertyInfo.getType(); Object value = null;//from www . j a va 2 s. c o m final JsonToken tokenType = reader.peek(); if (tokenType == JsonToken.NULL) { reader.nextNull(); } else { switch (EdmSimpleTypeKind.valueOf(type.getName())) { case Boolean: if (tokenType == JsonToken.BOOLEAN) { value = reader.nextBoolean(); value = value.toString(); } else { throw new EntityProviderException(EntityProviderException.INVALID_PROPERTY_VALUE .addContent(entityPropertyInfo.getName())); } break; case Byte: case SByte: case Int16: case Int32: if (tokenType == JsonToken.NUMBER) { value = reader.nextInt(); value = value.toString(); } else { throw new EntityProviderException(EntityProviderException.INVALID_PROPERTY_VALUE .addContent(entityPropertyInfo.getName())); } break; default: if (tokenType == JsonToken.STRING) { value = reader.nextString(); } else { throw new EntityProviderException(EntityProviderException.INVALID_PROPERTY_VALUE .addContent(entityPropertyInfo.getName())); } break; } } final Class<?> typeMappingClass = typeMapping == null ? type.getDefaultType() : (Class<?>) typeMapping; return type.valueOfString((String) value, EdmLiteralKind.JSON, entityPropertyInfo.getFacets(), typeMappingClass); }