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

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

源代码1 项目: sumk   文件: ByteArrayTypeAdapter.java
private byte[] rawRead(JsonReader in) throws IOException {
	@SuppressWarnings("resource")
	UnsafeByteArrayOutputStream out = new UnsafeByteArrayOutputStream(128);
	in.beginArray();
	try {
		while (in.hasNext()) {
			if (in.peek() == JsonToken.NULL) {
				in.nextNull();
				continue;
			}
			out.write(in.nextInt());
		}
	} catch (NumberFormatException e) {
		throw new JsonSyntaxException(e);
	}
	in.endArray();
	out.flush();
	return out.toByteArray();
}
 
源代码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;
}
 
源代码3 项目: schemaorg-java   文件: JsonLdSerializer.java
private JsonLdContext readContextDef(JsonReader reader) throws IOException {
  reader.beginObject();
  JsonLdContext.Builder contextBuilder = JsonLdFactory.newContextBuilder();
  while (reader.hasNext()) {
    String key = reader.nextName();
    if (!JsonLdConstants.BASE.equals(key)) {
      throw new JsonLdSyntaxException(
          String.format("Unsupported '%s' in JSON-LD context", key));
    }
    JsonToken valueToken = reader.peek();
    if (valueToken == JsonToken.STRING) {
      contextBuilder.setBase(reader.nextString());
    } else if (valueToken == JsonToken.NULL) {
      reader.nextNull();
      contextBuilder.setBase(null);
    } else {
      throw new JsonLdSyntaxException(
          String.format("The value of @base is '%s', should be a string", valueToken));
    }
  }
  reader.endObject();
  return contextBuilder.build();
}
 
源代码4 项目: gson   文件: Gson.java
private static TypeAdapter<Number> longAdapter(LongSerializationPolicy longSerializationPolicy) {
  if (longSerializationPolicy == LongSerializationPolicy.DEFAULT) {
    return TypeAdapters.LONG;
  }
  return new TypeAdapter<Number>() {
    @Override public Number read(JsonReader in) throws IOException {
      if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
      }
      return in.nextLong();
    }
    @Override public void write(JsonWriter out, Number value) throws IOException {
      if (value == null) {
        out.nullValue();
        return;
      }
      out.value(value.toString());
    }
  };
}
 
源代码5 项目: letv   文件: Gson.java
private TypeAdapter<Number> longAdapter(LongSerializationPolicy longSerializationPolicy) {
    if (longSerializationPolicy == LongSerializationPolicy.DEFAULT) {
        return TypeAdapters.LONG;
    }
    return new TypeAdapter<Number>() {
        public Number read(JsonReader in) throws IOException {
            if (in.peek() != JsonToken.NULL) {
                return Long.valueOf(in.nextLong());
            }
            in.nextNull();
            return null;
        }

        public void write(JsonWriter out, Number value) throws IOException {
            if (value == null) {
                out.nullValue();
            } else {
                out.value(value.toString());
            }
        }
    };
}
 
源代码6 项目: gson   文件: CollectionTypeAdapterFactory.java
@Override public Collection<E> read(JsonReader in) throws IOException {
  if (in.peek() == JsonToken.NULL) {
    in.nextNull();
    return null;
  }

  Collection<E> collection = constructor.construct();
  in.beginArray();
  while (in.hasNext()) {
    E instance = elementTypeAdapter.read(in);
    collection.add(instance);
  }
  in.endArray();
  return collection;
}
 
源代码7 项目: sumk   文件: DateAdapters.java
@Override
public LocalDateTime read(JsonReader in) throws IOException {
	if (in.peek() == JsonToken.NULL) {
		in.nextNull();
		return null;
	}
	String v = in.nextString();
	return SumkDate.of(v).toLocalDateTime();
}
 
源代码8 项目: 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);
}
 
源代码9 项目: consul-api   文件: Base64TypeAdapter.java
@Override
public byte[] read(JsonReader in) throws IOException {
	if (in.peek() == JsonToken.NULL) {
		in.nextNull();
		return new byte[0];
	} else {
		String data = in.nextString();
		return Base64.getDecoder().decode(data);
	}
}
 
源代码10 项目: softlayer-java   文件: GsonJsonMarshallerFactory.java
@Override
public Entity read(JsonReader in) throws IOException {
    // We are allowed to assume that the first property is complexType always. This allows us to maintain
    //  a streaming reader and is very important.
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
    }
    in.beginObject();
    if (!"complexType".equals(in.nextName())) {
        throw new RuntimeException("Expected 'complexType' as first property");
    }
    String apiTypeName = in.nextString();
    // If the API type is unrecognized by us (i.e. it's a new type), we just use the type
    //  we're an adapter for. So if we have SoftLayer_Something and a newer release of the
    //  API has a type extending it but we don't have a generated class for it, it will get
    //  properly serialized to a SoftLayer_Something.
    // If the API returns a type that isn't the same or a subtype of the type class,
    //  try as best we can to fit the data within the type class.
    Class<? extends Entity> clazz = typeClasses.get(apiTypeName);
    Entity result;
    if (clazz == null || !typeClass.isAssignableFrom(clazz)) {
        result = readForThisType(in);
    } else {
        result = ((EntityTypeAdapter) gson.getAdapter(clazz)).readForThisType(in);
    }
    in.endObject();
    return result;
}
 
源代码11 项目: letv   文件: TypeAdapters.java
public StringBuilder read(JsonReader in) throws IOException {
    if (in.peek() != JsonToken.NULL) {
        return new StringBuilder(in.nextString());
    }
    in.nextNull();
    return null;
}
 
源代码12 项目: pf4j-update   文件: LenientDateTypeAdapter.java
@Override
public Date read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
    }
    return deserializeToDate(in.nextString());
}
 
源代码13 项目: gson   文件: TypeAdapters.java
@Override
public Number read(JsonReader in) throws IOException {
  if (in.peek() == JsonToken.NULL) {
    in.nextNull();
    return null;
  }
  return in.nextDouble();
}
 
源代码14 项目: bazel   文件: RealSandboxfs02Process.java
/**
 * Waits for a single response from sandboxfs and returns it.
 *
 * @param input the stream connected to sandboxfs's stdout
 * @return the response obtained from the stream
 * @throws IOException if sandboxfs fails to read from the stream for any reason, including EOF
 */
private static Response readResponse(JsonReader input) throws IOException {
  input.beginObject();
  String id = null;
  String error = null;
  while (input.hasNext()) {
    String name = input.nextName();
    switch (name) {
      case "error":
        if (input.peek() == JsonToken.NULL) {
          input.nextNull();
        } else {
          checkState(error == null);
          error = input.nextString();
        }
        break;

      case "id":
        if (input.peek() == JsonToken.NULL) {
          input.nextNull();
        } else {
          checkState(id == null);
          id = input.nextString();
        }
        break;

      default:
        throw new IOException("Invalid field name in response: " + name);
    }
  }
  input.endObject();
  return new Response(id, error);
}
 
源代码15 项目: neural-style-gui   文件: FileAdapter.java
public File read(JsonReader reader) throws IOException {
    if (reader.peek() == JsonToken.NULL) {
        reader.nextNull();
        return null;
    }
    return new File(reader.nextString());
}
 
源代码16 项目: cyberduck   文件: JsonBookmarkCollection.java
protected String readNext(final String name, final JsonReader reader) throws IOException {
    if(reader.peek() != JsonToken.NULL) {
        return reader.nextString();
    }
    else {
        reader.skipValue();
        log.warn(String.format("No value for key %s", name));
        return null;
    }
}
 
@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;
}
 
源代码18 项目: letv   文件: TypeAdapters.java
public String read(JsonReader in) throws IOException {
    JsonToken peek = in.peek();
    if (peek == JsonToken.NULL) {
        in.nextNull();
        return null;
    } else if (peek == JsonToken.BOOLEAN) {
        return Boolean.toString(in.nextBoolean());
    } else {
        return in.nextString();
    }
}
 
源代码19 项目: cnode-android   文件: Iso8601DateTypeAdapter.java
@Override
public Date read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
    }

    String json = in.nextString();

    try {
        return DATE_FORMAT.parse(json);
    } catch (ParseException e) {
        throw new JsonSyntaxException(json, e);
    }
}
 
private Namespace readNamespace(long exampleNumber, JsonReader jsonReader) throws IOException {
	jsonReader.beginObject();

	StructuredExample.Namespace.NamespaceBuilder nsBuilder = new StructuredExample.Namespace.NamespaceBuilder();

	boolean nameRead = false, scalingFactorRead = false, featuresRead = false;

	while (jsonReader.hasNext()) {

		String propertyNameOriginal = jsonReader.nextName();
		String propertyName = propertyNameOriginal.trim().toLowerCase();

		if (propertyName.equals(StructuredJsonPropertyNames.NAMESPACE_NAME_PROPERTY)) {

			if (nameRead) {

				throw new ExampleFormatException(exampleNumber, "The 'name' property must only appear once in a namespace!");
			}

			if (jsonReader.peek() == JsonToken.NULL)
				jsonReader.nextNull();
			else {
				String namespace = jsonReader.nextString();
				nsBuilder.setName(namespace);
			}
			nameRead = true;
		}
		else if (propertyName.equals(StructuredJsonPropertyNames.NAMESPACE_SCALING_FACTOR_PROPERTY)) {

			if (scalingFactorRead) {

				throw new ExampleFormatException(exampleNumber, "The 'value' property must only appear once in a namespace!");
			}

			if (jsonReader.peek() == JsonToken.NULL)
				jsonReader.nextNull();
			else {
				double scalingFactor = jsonReader.nextDouble();
				nsBuilder.setScalingFactor(Float.valueOf((float) scalingFactor));
			}
			scalingFactorRead = true;

		}
		else if (propertyName.equals(StructuredJsonPropertyNames.NAMESPACE_FEATURES_PROPERTY)) {

			if (featuresRead) {

				throw new ExampleFormatException(exampleNumber, "The 'features' property must only appear once in a namespace!");
			}

			if (jsonReader.peek() == JsonToken.NULL) {
				jsonReader.nextNull();
			}
			else {

				jsonReader.beginArray();

				int numFeaturesAdded = 0;

				while (jsonReader.hasNext()) {
					readFeatureIntoNamespace(exampleNumber, nsBuilder, jsonReader);

					numFeaturesAdded++;

					if (maxNumberOfFeaturesPerNamespace > 0 && maxNumberOfFeaturesPerNamespace < Integer.MAX_VALUE && numFeaturesAdded > maxNumberOfFeaturesPerNamespace) {
						throw new ExampleFormatException(exampleNumber, "The maximum number of features per namespace, " + maxNumberOfFeaturesPerNamespace + " was exceeded!");
					}
				}

				jsonReader.endArray();

			}
			featuresRead = true;

		}
		else {
			throw new ExampleFormatException(exampleNumber, "Unknown property: " + propertyNameOriginal + " found while reading namespace!");
		}
	}

	jsonReader.endObject();

	return nsBuilder.build();
}