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

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

@Override
public SpeechWordConfidence read(JsonReader reader) throws IOException {
  if (reader.peek() == JsonToken.NULL) {
    reader.nextNull();
    return null;
  }

  final SpeechWordConfidence speechWordConfidence = new SpeechWordConfidence();
  reader.beginArray();

  if (reader.peek() == JsonToken.STRING) {
    speechWordConfidence.setWord(reader.nextString());
  }
  if (reader.peek() == JsonToken.NUMBER) {
    speechWordConfidence.setConfidence(reader.nextDouble());
  }

  reader.endArray();
  return speechWordConfidence;
}
 
源代码2 项目: java-sdk   文件: WordTimingTypeAdapter.java
@Override
public WordTiming read(JsonReader in) throws IOException {
  if (in.peek() == JsonToken.NULL) {
    in.nextNull();
    return null;
  }

  final WordTiming wordTiming = new WordTiming();
  in.beginArray();

  if (in.peek() == JsonToken.STRING) {
    wordTiming.setWord(in.nextString());
  }
  if (in.peek() == JsonToken.NUMBER) {
    wordTiming.setStartTime(in.nextDouble());
  }
  if (in.peek() == JsonToken.NUMBER) {
    wordTiming.setEndTime(in.nextDouble());
  }

  in.endArray();
  return wordTiming;
}
 
public void handlePluginMessage(byte[] message) {
    String strMessage = new String(message, StandardCharsets.UTF_8);
    try (CharArrayReader reader = new CharArrayReader(strMessage.toCharArray())) {
        JsonReader r = new JsonReader(reader);
        r.setLenient(true);
        while (r.peek() != JsonToken.END_DOCUMENT) {
            r.beginObject();
            JsonObject o = new JsonObject();

            while (r.hasNext()) {
                String name = r.nextName();
                if (r.peek() == JsonToken.NUMBER)
                    o.add(name, new JsonPrimitive(r.nextLong()));
                else
                    o.add(name, new JsonPrimitive(r.nextString()));
            }
            r.endObject();

            Vote v = new Vote(o);
            listener.onForward(v);
        }
    } catch (IOException e) {
        e.printStackTrace(); // Should never happen.
    }
}
 
源代码4 项目: framework   文件: JsonTreeReader.java
@Override public long nextLong() throws IOException {
  JsonToken token = peek();
  if (token != JsonToken.NUMBER && token != JsonToken.STRING) {
    throw new IllegalStateException("Expected " + JsonToken.NUMBER + " but was " + token);
  }
  long result = ((JsonPrimitive) peekStack()).getAsLong();
  popStack();
  return result;
}
 
源代码5 项目: 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;
  }
}
 
源代码6 项目: cloud-odata-java   文件: JsonPropertyConsumer.java
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;
  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);
}
 
/** 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");
}
 
源代码8 项目: MiBandDecompiled   文件: JsonTreeReader.java
public String nextString()
{
    JsonToken jsontoken = peek();
    if (jsontoken != JsonToken.STRING && jsontoken != JsonToken.NUMBER)
    {
        throw new IllegalStateException((new StringBuilder()).append("Expected ").append(JsonToken.STRING).append(" but was ").append(jsontoken).toString());
    } else
    {
        return ((JsonPrimitive)b()).getAsString();
    }
}
 
源代码9 项目: letv   文件: JsonTreeReader.java
public long nextLong() throws IOException {
    JsonToken token = peek();
    if (token == JsonToken.NUMBER || token == JsonToken.STRING) {
        long result = ((JsonPrimitive) peekStack()).getAsLong();
        popStack();
        return result;
    }
    throw new IllegalStateException("Expected " + JsonToken.NUMBER + " but was " + token);
}
 
源代码10 项目: letv   文件: JsonTreeReader.java
public int nextInt() throws IOException {
    JsonToken token = peek();
    if (token == JsonToken.NUMBER || token == JsonToken.STRING) {
        int result = ((JsonPrimitive) peekStack()).getAsInt();
        popStack();
        return result;
    }
    throw new IllegalStateException("Expected " + JsonToken.NUMBER + " but was " + token);
}
 
源代码11 项目: 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;
}
 
源代码12 项目: framework   文件: JsonTreeReader.java
@Override public int nextInt() throws IOException {
  JsonToken token = peek();
  if (token != JsonToken.NUMBER && token != JsonToken.STRING) {
    throw new IllegalStateException("Expected " + JsonToken.NUMBER + " but was " + token);
  }
  int result = ((JsonPrimitive) peekStack()).getAsInt();
  popStack();
  return result;
}
 
@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;
}
 
源代码14 项目: packagedrone   文件: ChannelReader.java
private Instant readTime ( final JsonReader jr ) throws IOException
{
    final JsonToken peek = jr.peek ();
    if ( peek == JsonToken.NUMBER )
    {
        return Instant.ofEpochMilli ( jr.nextLong () );
    }
    else if ( peek == JsonToken.NULL )
    {
        jr.nextNull ();
        return null;
    }
    else if ( peek == JsonToken.STRING )
    {
        final String str = jr.nextString ();

        try
        {
            return Instant.ofEpochMilli ( Long.parseLong ( str ) );
        }
        catch ( final NumberFormatException e )
        {
            try
            {
                return this.dateFormat.parse ( str ).toInstant ();
            }
            catch ( final ParseException e2 )
            {
                throw new IOException ( e2 );
            }
        }
    }
    else
    {
        throw new IOException ( String.format ( "Invalid timestamp token: %s", peek ) );
    }
}
 
源代码15 项目: framework   文件: JsonTreeReader.java
@Override public double nextDouble() throws IOException {
  JsonToken token = peek();
  if (token != JsonToken.NUMBER && token != JsonToken.STRING) {
    throw new IllegalStateException("Expected " + JsonToken.NUMBER + " but was " + token);
  }
  double result = ((JsonPrimitive) peekStack()).getAsDouble();
  if (!isLenient() && (Double.isNaN(result) || Double.isInfinite(result))) {
    throw new NumberFormatException("JSON forbids NaN and infinities: " + result);
  }
  popStack();
  return result;
}
 
源代码16 项目: framework   文件: JsonTreeReader.java
@Override public String nextString() throws IOException {
  JsonToken token = peek();
  if (token != JsonToken.STRING && token != JsonToken.NUMBER) {
    throw new IllegalStateException("Expected " + JsonToken.STRING + " but was " + token);
  }
  return ((JsonPrimitive) popStack()).getAsString();
}
 
源代码17 项目: 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();
        }
    }
}
 
源代码18 项目: lsp4j   文件: MessageTypeAdapter.java
@Override
public Message read(JsonReader in) throws IOException, JsonIOException, JsonSyntaxException {
	if (in.peek() == JsonToken.NULL) {
		in.nextNull();
		return null;
	}
	
	in.beginObject();
	String jsonrpc = null, method = null;
	Either<String, Number> id = null;
	Object rawParams = null;
	Object rawResult = null;
	ResponseError responseError = null;
	try {
		
		while (in.hasNext()) {
			String name = in.nextName();
			switch (name) {
			case "jsonrpc": {
				jsonrpc = in.nextString();
				break;
			}
			case "id": {
				if (in.peek() == JsonToken.NUMBER)
					id = Either.forRight(in.nextInt());
				else
					id = Either.forLeft(in.nextString());
				break;
			}
			case "method": {
				method = in.nextString();
				break;
			}
			case "params": {
				rawParams = parseParams(in, method);
				break;
			}
			case "result": {
				rawResult = parseResult(in, id != null ? id.get().toString() : null);
				break;
			}
			case "error": {
				responseError = gson.fromJson(in, ResponseError.class);
				break;
			}
			default:
				in.skipValue();
			}
		}
		Object params = parseParams(rawParams, method);
		Object result = parseResult(rawResult, id != null ? id.get().toString() : null);
		
		in.endObject();
		return createMessage(jsonrpc, id, method, params, result, responseError);
		
	} catch (JsonSyntaxException | MalformedJsonException | EOFException exception) {
		if (id != null || method != null) {
			// Create a message and bundle it to an exception with an issue that wraps the original exception
			Message message = createMessage(jsonrpc, id, method, rawParams, rawResult, responseError);
			MessageIssue issue = new MessageIssue("Message could not be parsed.", ResponseErrorCode.ParseError.getValue(), exception);
			throw new MessageIssueException(message, issue);
		} else {
			throw exception;
		}
	}
}
 
源代码19 项目: gson   文件: JsonTreeReader.java
@Override public JsonToken peek() throws IOException {
  if (stackSize == 0) {
    return JsonToken.END_DOCUMENT;
  }

  Object o = peekStack();
  if (o instanceof Iterator) {
    boolean isObject = stack[stackSize - 2] instanceof JsonObject;
    Iterator<?> iterator = (Iterator<?>) o;
    if (iterator.hasNext()) {
      if (isObject) {
        return JsonToken.NAME;
      } else {
        push(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 项目: 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();
  }
}