com.google.gson.stream.JsonToken#BEGIN_OBJECT源码实例Demo

下面列出了com.google.gson.stream.JsonToken#BEGIN_OBJECT 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: greenbeans   文件: CategoriesTypeAdapter.java
@Override
public Categories read(JsonReader reader) throws IOException {
	reader.beginObject();
	checkState(NAME_CATEGORIES.equals(reader.nextName()));
	reader.beginArray();

	ImmutableList.Builder<Category> elements = ImmutableList.<Category> builder();
	while (reader.hasNext()) {
		if (reader.peek() == JsonToken.BEGIN_OBJECT) {
			elements.add(gson.getAdapter(Category.class).read(reader));
		} else {
			elements.add(readCategory(reader.nextString()));
		}
	}
	reader.endArray();
	reader.endObject();

	return new Categories(elements.build());
}
 
源代码2 项目: schemaorg-java   文件: JsonLdSerializer.java
private ListMultimap<String, Thing> readReverse(JsonReader reader) throws IOException {
  reader.beginObject();
  ListMultimap<String, Thing> reverseMap = LinkedListMultimap.create();
  while (reader.hasNext()) {
    String property = reader.nextName();
    JsonToken token = reader.peek();
    if (token == JsonToken.BEGIN_OBJECT) {
      reverseMap.put(property, readObject(reader));
    } else if (token == JsonToken.BEGIN_ARRAY) {
      reader.beginArray();
      while (reader.hasNext()) {
        reverseMap.put(property, readObject(reader));
      }
      reader.endArray();
    } else {
      throw new JsonLdSyntaxException(
          String.format(
              "Invalid value token %s in @reverse. Should be a JSON-LD object or an "
                  + "array of JSON-LD objects",
              token));
    }
  }
  reader.endObject();
  return reverseMap;
}
 
源代码3 项目: schemaorg-java   文件: JsonLdSerializer.java
private List<JsonLdContext> readContextArray(JsonReader reader) throws IOException {
  reader.beginArray();
  List<JsonLdContext> list = new ArrayList<>();
  while (reader.hasNext()) {
    JsonToken token = reader.peek();
    if (token == JsonToken.STRING) {
      list.add(readContextUrl(reader));
    } else if (token == JsonToken.NULL) {
      reader.nextNull();
      list.add(null);
    } else if (token == JsonToken.BEGIN_OBJECT) {
      list.add(readContextDef(reader));
    } else {
      throw new JsonLdSyntaxException(
          String.format(
              "Invalid @context value token %s. Should be URL, context definition", token));
    }
  }
  reader.endArray();
  return list;
}
 
源代码4 项目: geogson   文件: GeometryAdapterFactory.java
private Geometry<?> parseGeometries(JsonReader in) throws IOException {

            Optional<Geometry<?>> parsed = Optional.empty();

            if (in.peek() != JsonToken.BEGIN_ARRAY) {
                throw new IllegalArgumentException("The given json is not a valid GeometryCollection");
            }

            in.beginArray();
            if (in.peek() == JsonToken.BEGIN_OBJECT) {
                LinkedList<Geometry<?>> geometries = new LinkedList<>();
                while (in.hasNext()) {
                    @SuppressWarnings("rawtypes")
                    Geometry geometry = geometryAdapter.read(in);
                    geometries.add(geometry);
                }
                parsed = Optional.<Geometry<?>>of(GeometryCollection.of(geometries));
            }

            in.endArray();

            return parsed.orElse(null);
        }
 
源代码5 项目: salt-netapi-client   文件: ArgumentsAdapter.java
@Override
public Arguments read(JsonReader jsonReader) throws IOException {
    if (jsonReader.peek() == JsonToken.NULL) {
        throw new JsonParseException("null is not a valid value for Arguments");
    }
    Arguments result = new Arguments();
    jsonReader.beginArray();
    while (jsonReader.hasNext()) {
        if (jsonReader.peek() == JsonToken.BEGIN_OBJECT) {
            Map<String, Object> arg = readObjectArgument(jsonReader);
            if (isKwarg(arg)) {
                arg.remove(KWARG_KEY);
                result.getKwargs().putAll(arg);
            } else {
                result.getArgs().add(arg);
            }
        } else {
            result.getArgs().add(JsonParser.GSON.fromJson(jsonReader, Object.class));
        }
    }
    jsonReader.endArray();
    return result;
}
 
源代码6 项目: arcusplatform   文件: IpcdJsonReader.java
/**
 * Returns the type of the next token without consuming it.
 */
public JsonToken peek() throws IOException {
   int p = peeked;
   if (p == PEEKED_NONE) {
      p = doPeek();
   }

   switch (p) {
      case PEEKED_BEGIN_OBJECT:
         return JsonToken.BEGIN_OBJECT;
      case PEEKED_END_OBJECT:
         return JsonToken.END_OBJECT;
      case PEEKED_BEGIN_ARRAY:
         return JsonToken.BEGIN_ARRAY;
      case PEEKED_END_ARRAY:
         return JsonToken.END_ARRAY;
      case PEEKED_SINGLE_QUOTED_NAME:
      case PEEKED_DOUBLE_QUOTED_NAME:
      case PEEKED_UNQUOTED_NAME:
         return JsonToken.NAME;
      case PEEKED_TRUE:
      case PEEKED_FALSE:
         return JsonToken.BOOLEAN;
      case PEEKED_NULL:
         return JsonToken.NULL;
      case PEEKED_SINGLE_QUOTED:
      case PEEKED_DOUBLE_QUOTED:
      case PEEKED_UNQUOTED:
      case PEEKED_BUFFERED:
         return JsonToken.STRING;
      case PEEKED_LONG:
      case PEEKED_NUMBER:
         return JsonToken.NUMBER;
      case PEEKED_EOF:
         return JsonToken.END_DOCUMENT;
      default:
         throw new AssertionError();
   }
}
 
源代码7 项目: lsp4j   文件: EitherTypeAdapter.java
protected JsonToken getExpectedToken(Class<?> rawType) {
	if (rawType.isArray() || Collection.class.isAssignableFrom(rawType) || Tuple.class.isAssignableFrom(rawType)) {
		return JsonToken.BEGIN_ARRAY;
	}
	if (Boolean.class.isAssignableFrom(rawType)) {
		return JsonToken.BOOLEAN;
	}
	if (Number.class.isAssignableFrom(rawType) || Enum.class.isAssignableFrom(rawType)) {
		return JsonToken.NUMBER;
	}
	if (Character.class.isAssignableFrom(rawType) || String.class.isAssignableFrom(rawType)) {
		return JsonToken.STRING;
	}
	return JsonToken.BEGIN_OBJECT;
}
 
源代码8 项目: geogson   文件: FeatureAdapter.java
@Override
public Feature read(JsonReader in) throws IOException {
    Feature.Builder builder = Feature.builder();
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
    } else if (in.peek() == JsonToken.BEGIN_OBJECT) {
        in.beginObject();

        while (in.hasNext()) {
            String name = in.nextName();
            if (TYPE_NAME.equals(name)) {
                String value = in.nextString();
                if(!value.equalsIgnoreCase(FEATURE_TYPE)) {
                    throw new IllegalArgumentException("The given json is not a valid Feature, the type must be Feature, current type=" + value);
                }
            } else if (PROPERTIES_NAME.equals(name)) {
                readProperties(in, builder);
            } else if (GEOMETRY_NAME.equals(name)) {
                builder.withGeometry(gson.fromJson(in, Geometry.class));
            } else if (ID_NAME.equals(name)) {
                builder.withId(Optional.ofNullable(in.nextString()));
            } else {
                // Skip unknown value.
                in.skipValue();
            }
        }

        in.endObject();

    } else {
        throw new IllegalArgumentException("The given json is not a valid Feature: " + in.peek());
    }

    return builder.build();
}
 
源代码9 项目: immutables   文件: BsonReader.java
private static JsonToken toGsonToken(BsonType type) {
  switch (type) {
  case END_OF_DOCUMENT:
    return JsonToken.END_DOCUMENT;
  case DOCUMENT:
    return JsonToken.BEGIN_OBJECT;
  case ARRAY:
    return JsonToken.BEGIN_ARRAY;
  case BOOLEAN:
    return JsonToken.BOOLEAN;
  case STRING:
  case SYMBOL:
  case OBJECT_ID:
  case BINARY:
  case REGULAR_EXPRESSION:
    return JsonToken.STRING;
  case DATE_TIME:
  case DOUBLE:
  case INT32:
  case INT64:
  case TIMESTAMP:
  case DECIMAL128:
    return JsonToken.NUMBER;
  case NULL:
  case UNDEFINED:
    return JsonToken.NULL;
  default:
    // not really sure what to do with this type
    return JsonToken.NULL;
  }
}
 
源代码10 项目: geogson   文件: GeometryAdapterFactory.java
@Override
public Geometry<?> read(JsonReader in) throws IOException {

    Geometry<?> geometry = null;
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
    } else if (in.peek() == JsonToken.BEGIN_OBJECT) {
        in.beginObject();

        Geometry.Type type = null;
        Positions positions = null;
        Geometry<?> geometries = null;

        while (in.hasNext()) {
            String name = in.nextName();
            if ("type".equals(name)) {
                type = Geometry.Type.forValue(in.nextString());
            } else if ("coordinates".equals(name)) {
                positions = positionsAdapter.read(in);
            } else if ("geometries".equals(name)) {
                geometries = readGeometries(in);
            } else {
                in.skipValue();
            }
        }

        geometry = buildGeometry(type, positions, geometries);

        in.endObject();

    } else {
        throw new IllegalArgumentException("The given json is not a valid Geometry: " + in.peek());
    }

    return geometry;
}
 
源代码11 项目: olingo-odata2   文件: JsonErrorDocumentConsumer.java
private void parseInnerError(final JsonReader reader, final ODataErrorContext errorContext) throws IOException {
  JsonToken token = reader.peek();
  if (token == JsonToken.STRING) {
    // implementation for parse content as provided by JsonErrorDocumentProducer
    String innerError = reader.nextString();
    errorContext.setInnerError(innerError);
  } else if (token == JsonToken.BEGIN_OBJECT) {
    // implementation for OData v2 Section 2.2.8.1.2 JSON Error Response
    // (RFC4627 Section 2.2 -> https://www.ietf.org/rfc/rfc4627.txt))
    // currently partial provided
    errorContext.setInnerError(readJson(reader));
  }
}
 
源代码12 项目: olingo-odata2   文件: JsonErrorDocumentConsumer.java
private String readJson(final JsonReader reader) throws IOException {
  StringBuilder sb = new StringBuilder();

  while (reader.hasNext()) {
    JsonToken token = reader.peek();
    if (token == JsonToken.NAME) {
      if (sb.length() > 0) {
        sb.append(",");
      }
      String name = reader.nextName();
      sb.append("\"").append(name).append("\"").append(":");
    } else if (token == JsonToken.BEGIN_OBJECT) {
      reader.beginObject();
      sb.append("{")
          .append(readJson(reader))
          .append("}");
      reader.endObject();
    } else if (token == JsonToken.BEGIN_ARRAY) {
      reader.beginArray();
      sb.append("[")
          .append(readJson(reader))
          .append("]");
      reader.endArray();
    } else {
      sb.append("\"")
          .append(reader.nextString())
          .append("\"");
    }
  }

  return sb.toString();
}
 
源代码13 项目: geogson   文件: FeatureCollectionAdapter.java
@Override
public FeatureCollection read(JsonReader in) throws IOException {
    FeatureCollection featureCollection = null;

    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
    } else if (in.peek() == JsonToken.BEGIN_OBJECT) {
        in.beginObject();
        LinkedList<Feature> features = null;

        while (in.hasNext()) {
            String name = in.nextName();
            if ("features".equalsIgnoreCase(name)) {
                in.beginArray();
                features = new LinkedList<>();
                while(in.peek() == JsonToken.BEGIN_OBJECT) {
                    Feature feature = gson.fromJson(in, Feature.class);
                    features.add(feature);
                }
                in.endArray();
            } else {
                in.skipValue();
            }
        }

        if (features == null) {
            throw new IllegalArgumentException("Required field 'features' is missing");
        }

        featureCollection = new FeatureCollection(features);
        in.endObject();

    } else {
        throw new IllegalArgumentException("The given json is not a valid FeatureCollection: " + in.peek());
    }

    return featureCollection;
}
 
源代码14 项目: olingo-odata2   文件: JsonEntryDeserializer.java
/**
 * 
 * @param navigationPropertyName
 * @throws IOException
 * @throws EntityProviderException
 * @throws EdmException
 */
private void readNavigationProperty(final String navigationPropertyName) throws IOException, EntityProviderException,
    EdmException {
  NavigationPropertyInfo navigationPropertyInfo = eia.getNavigationPropertyInfo(navigationPropertyName);
  if (navigationPropertyInfo == null) {
    throw new EntityProviderException(EntityProviderException.ILLEGAL_ARGUMENT.addContent(navigationPropertyName));
  }

  JsonToken peek = reader.peek();
  if (peek == JsonToken.BEGIN_OBJECT) {
    reader.beginObject();
    String name = reader.nextName();
    if (FormatJson.DEFERRED.equals(name)) {
      reader.beginObject();
      String uri = reader.nextName();
      if (FormatJson.URI.equals(uri)) {
        String value = reader.nextString(); 
        entryMetadata.putAssociationUri(navigationPropertyInfo.getName(), value);
      } else {
        throw new EntityProviderException(EntityProviderException.ILLEGAL_ARGUMENT.addContent(uri));
      }
      reader.endObject();
    } else {
      handleInlineEntries(navigationPropertyName, name);
    }
    reader.endObject();
  } else if (peek == JsonToken.NULL) {
    reader.nextNull();
  } else {
    handleArray(navigationPropertyName);
  }
 }
 
源代码15 项目: proteus   文件: ProteusTypeAdapterFactory.java
public Map<String, Value> readData(JsonReader in) throws IOException {
  JsonToken peek = in.peek();
  if (peek == JsonToken.NULL) {
    in.nextNull();
    return new HashMap<>();
  }

  if (peek != JsonToken.BEGIN_OBJECT) {
    throw new JsonSyntaxException("data must be a Map<String, String>.");
  }

  Map<String, Value> data = new LinkedHashMap<>();

  in.beginObject();
  while (in.hasNext()) {
    JsonReaderInternalAccess.INSTANCE.promoteNameToValue(in);
    String key = in.nextString();
    Value value = VALUE_TYPE_ADAPTER.read(in);
    Value compiled = AttributeProcessor.staticPreCompile(value, context, PROTEUS_INSTANCE_HOLDER.getProteus().functions);
    if (compiled != null) {
      value = compiled;
    }
    Value replaced = data.put(key, value);
    if (replaced != null) {
      throw new JsonSyntaxException("duplicate key: " + key);
    }
  }
  in.endObject();

  return data;
}
 
/**
 * 
 * @param reader
 * @return String
 * @throws IOException
 */
private String readJson(final JsonReader reader) throws IOException {
  StringBuilder sb = new StringBuilder();

  while (reader.hasNext()) {
    JsonToken token = reader.peek();
    if (token == JsonToken.NAME) {
      if (sb.length() > 0) {
        sb.append(",");
      }
      String name = reader.nextName();
      sb.append("\"").append(name).append("\"").append(":");
    } else if (token == JsonToken.BEGIN_OBJECT) {
      reader.beginObject();
      sb.append("{")
          .append(readJson(reader))
          .append("}");
      reader.endObject();
    } else if (token == JsonToken.BEGIN_ARRAY) {
      reader.beginArray();
      sb.append("[")
          .append(readJson(reader))
          .append("]");
      reader.endArray();
    } else {
      sb.append("\"")
          .append(reader.nextString())
          .append("\"");
    }
  }

  return sb.toString();
}
 
源代码17 项目: softlayer-java   文件: GsonJsonMarshallerFactory.java
@Override
public List<T> read(JsonReader in) throws IOException {
    // We only take over if it's the beginning of an object, otherwise delegate
    if (in.peek() == JsonToken.BEGIN_OBJECT) {
        // Send back a mutable list of 1
        List<T> result = new ArrayList<>(1);
        result.add(instanceDelegate.read(in));
        return result;
    }
    return listDelegate.read(in);
}
 
源代码18 项目: letv   文件: JsonTreeReader.java
public JsonToken peek() throws IOException {
    if (this.stack.isEmpty()) {
        return JsonToken.END_DOCUMENT;
    }
    Iterator<?> o = peekStack();
    if (o instanceof Iterator) {
        boolean isObject = this.stack.get(this.stack.size() - 2) instanceof JsonObject;
        Iterator<?> iterator = o;
        if (!iterator.hasNext()) {
            return isObject ? JsonToken.END_OBJECT : JsonToken.END_ARRAY;
        } else {
            if (isObject) {
                return JsonToken.NAME;
            }
            this.stack.add(iterator.next());
            return peek();
        }
    } else if (o instanceof JsonObject) {
        return JsonToken.BEGIN_OBJECT;
    } else {
        if (o instanceof JsonArray) {
            return JsonToken.BEGIN_ARRAY;
        }
        if (o instanceof JsonPrimitive) {
            JsonPrimitive primitive = (JsonPrimitive) o;
            if (primitive.isString()) {
                return JsonToken.STRING;
            }
            if (primitive.isBoolean()) {
                return JsonToken.BOOLEAN;
            }
            if (primitive.isNumber()) {
                return JsonToken.NUMBER;
            }
            throw new AssertionError();
        } else if (o instanceof JsonNull) {
            return JsonToken.NULL;
        } else {
            if (o == SENTINEL_CLOSED) {
                throw new IllegalStateException("JsonReader is closed");
            }
            throw new AssertionError();
        }
    }
}
 
源代码19 项目: framework   文件: JsonTreeReader.java
@Override public JsonToken peek() throws IOException {
  if (stack.isEmpty()) {
    return JsonToken.END_DOCUMENT;
  }

  Object o = peekStack();
  if (o instanceof Iterator) {
    boolean isObject = stack.get(stack.size() - 2) instanceof JsonObject;
    Iterator<?> iterator = (Iterator<?>) o;
    if (iterator.hasNext()) {
      if (isObject) {
        return JsonToken.NAME;
      } else {
        stack.add(iterator.next());
        return peek();
      }
    } else {
      return isObject ? JsonToken.END_OBJECT : JsonToken.END_ARRAY;
    }
  } else if (o instanceof JsonObject) {
    return JsonToken.BEGIN_OBJECT;
  } else if (o instanceof JsonArray) {
    return JsonToken.BEGIN_ARRAY;
  } else if (o instanceof JsonPrimitive) {
    JsonPrimitive primitive = (JsonPrimitive) o;
    if (primitive.isString()) {
      return JsonToken.STRING;
    } else if (primitive.isBoolean()) {
      return JsonToken.BOOLEAN;
    } else if (primitive.isNumber()) {
      return JsonToken.NUMBER;
    } else {
      throw new AssertionError();
    }
  } else if (o instanceof JsonNull) {
    return JsonToken.NULL;
  } else if (o == SENTINEL_CLOSED) {
    throw new IllegalStateException("JsonReader is closed");
  } else {
    throw new AssertionError();
  }
}
 
源代码20 项目: bazel   文件: JsonProfile.java
public JsonProfile(InputStream inputStream) throws IOException {
  try (JsonReader reader =
      new JsonReader(
          new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)))) {
    if (reader.peek() == JsonToken.BEGIN_OBJECT) {
      reader.beginObject();
      while (reader.hasNext()) {
        String objectKey = reader.nextName();
        if ("otherData".equals(objectKey)) {
          buildMetadata = parseBuildMetadata(reader);
        } else if ("traceEvents".equals(objectKey)) {
          traceEvents = TraceEvent.parseTraceEvents(reader);
          phaseSummaryStatistics = new PhaseSummaryStatistics();
          TraceEvent lastPhaseEvent = null;
          Duration maxEndTime = Duration.ZERO;
          for (TraceEvent traceEvent : traceEvents) {
            if (traceEvent.timestamp() != null) {
              Duration curEndTime = traceEvent.timestamp();
              if (traceEvent.duration() != null) {
                curEndTime = curEndTime.plus(traceEvent.duration());
              }
              if (curEndTime.compareTo(maxEndTime) > 0) {
                maxEndTime = curEndTime;
              }
            }
            if (ProfilerTask.PHASE.description.equals(traceEvent.category())) {
              if (lastPhaseEvent != null) {
                phaseSummaryStatistics.addProfilePhase(
                    ProfilePhase.getPhaseFromDescription(lastPhaseEvent.name()),
                    traceEvent.timestamp().minus(lastPhaseEvent.timestamp()));
              }
              lastPhaseEvent = traceEvent;
            }
          }
          if (lastPhaseEvent != null) {
            phaseSummaryStatistics.addProfilePhase(
                ProfilePhase.getPhaseFromDescription(lastPhaseEvent.name()),
                maxEndTime.minus(lastPhaseEvent.timestamp()));
          }
        } else {
          reader.skipValue();
        }
      }
    }
  }
}