Java 类com.fasterxml.jackson.core.JsonParser 实例源码

项目:GitHub    文件:JacksonConverterFactoryTest.java   
@Override public AnInterface deserialize(JsonParser jp, DeserializationContext ctxt)
    throws IOException {
  if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
    throw new AssertionError("Expected start object.");
  }

  String name = null;

  while (jp.nextToken() != JsonToken.END_OBJECT) {
    switch (jp.getCurrentName()) {
      case "name":
        name = jp.getValueAsString();
        break;
    }
  }

  return new AnImplementation(name);
}
项目:swblocks-decisiontree    文件:JsonJacksonParser.java   
private void parseInputArrayOfStrings(final JsonParser parser,
                                      final List<String> inputs,
                                      final DriverCache cache,
                                      final Set<ValueGroup> groups) {
    EhSupport.propagate(() -> {
        parser.nextToken();
        while (parser.nextToken() != JsonToken.END_ARRAY) {
            String value = parser.getText();
            if (value.startsWith(GroupDriver.VG_PREFIX) && !cache.contains(value)) {
                final String groupName = value.split(":")[1];
                final Optional<ValueGroup> group =
                        groups.stream().filter(valueGroup -> valueGroup.getName().equals(groupName)).findFirst();
                if (group.isPresent()) {
                    value = GroupDriver.VG_PREFIX + group.get().getId();
                } else {
                    inputs.add(value);
                }
            }
            inputs.add(value);
        }
    });
}
项目:GitHub    文件:TestParserOverrides.java   
public void _testTokenAccess(JsonFactory jf, boolean useStream) throws Exception
{
    final String DOC = "[ ]";
    JsonParser jp = useStream ?
            jf.createParser(ObjectReadContext.empty(), new ByteArrayInputStream(DOC.getBytes("UTF-8")))
            : jf.createParser(ObjectReadContext.empty(), DOC);
    assertNull(jp.currentToken());
    jp.clearCurrentToken();
    assertNull(jp.currentToken());
    assertNull(jp.getEmbeddedObject());
    assertToken(JsonToken.START_ARRAY, jp.nextToken());
    assertToken(JsonToken.START_ARRAY, jp.currentToken());
    jp.clearCurrentToken();
    assertNull(jp.currentToken());
    // Also: no codec defined by default
    try {
        jp.readValueAsTree();
        fail("Should get exception without codec");
    } catch (UnsupportedOperationException e) {
        verifyException(e, "Operation not supported");
    }
    jp.close();
}
项目:wamp2spring    文件:RegisterMessage.java   
public static RegisterMessage deserialize(JsonParser jp) throws IOException {
    jp.nextToken();
    long request = jp.getLongValue();

    boolean discloseCaller = false;
    jp.nextToken();
    Map<String, Object> options = ParserUtil.readObject(jp);
    if (options != null) {
        discloseCaller = (boolean) options.getOrDefault("disclose_caller", false);
    }

    jp.nextToken();
    String procedure = jp.getValueAsString();

    return new RegisterMessage(request, procedure, discloseCaller);
}
项目:javaOIDCMsg    文件:JsonNodeClaimTest.java   
@Test
public void shouldThrowIfAnExtraordinaryExceptionHappensWhenParsingAsGenericMap() throws Exception {
    JsonNode value = mock(ObjectNode.class);
    when(value.getNodeType()).thenReturn(JsonNodeType.OBJECT);

    JsonNodeClaim claim = (JsonNodeClaim) claimFromNode(value);
    JsonNodeClaim spiedClaim = spy(claim);
    ObjectMapper mockedMapper = mock(ObjectMapper.class);
    when(spiedClaim.getObjectMapper()).thenReturn(mockedMapper);
    JsonParser mockedParser = mock(JsonParser.class);
    when(mockedMapper.treeAsTokens(value)).thenReturn(mockedParser);
    when(mockedParser.readValueAs(ArgumentMatchers.any(TypeReference.class))).thenThrow(IOException.class);

    exception.expect(JWTDecodeException.class);
    spiedClaim.asMap();
}
项目:GitHub    文件:JsonParserSequenceTest.java   
@Test
public void testSkipChildren() throws IOException {
    JsonParser[] jsonParserArray = new JsonParser[3];
    IOContext ioContext = new IOContext(new BufferRecycler(), jsonParserArray, true);
    byte[] byteArray = new byte[8];
    InputStream byteArrayInputStream = new ByteArrayInputStream(byteArray, 0, (byte) 58);
    UTF8StreamJsonParser uTF8StreamJsonParser = new UTF8StreamJsonParser(ObjectReadContext.empty(),
            ioContext,
            0, byteArrayInputStream, ByteQuadsCanonicalizer.createRoot(),
            byteArray, -1, (byte) 9, true);
    JsonParserDelegate jsonParserDelegate = new JsonParserDelegate(jsonParserArray[0]);
    JsonParserSequence jsonParserSequence = JsonParserSequence.createFlattened(true, uTF8StreamJsonParser, jsonParserDelegate);
    JsonParserSequence jsonParserSequenceTwo = (JsonParserSequence) jsonParserSequence.skipChildren();

    assertEquals(2, jsonParserSequenceTwo.containedParsersCount());
}
项目:dbsync    文件:JSonStringConverter.java   
@Override
public Value jsonToColumnValue(JsonParser parser, ValueMetadata metadata) throws IOException {
    JsonToken token;
    Value value;

    // Go to the next token
    token = parser.nextToken();

    if (token != JsonToken.VALUE_STRING && token != JsonToken.VALUE_NULL) {
        throw new IOException("Unable to parse field " + metadata.getName() + " expected string or null at line " + parser.getCurrentLocation().getLineNr());
    }

    // Can be a integer or null
    if (token == JsonToken.VALUE_STRING) {
        value = new Value(parser.getValueAsString(), metadata);
    } else {
        // null
        if (metadata.isNotNull()) {
            throw new IOException("Unable to parse field " + metadata.getName() + " expected string but found null at line " + parser.getCurrentLocation().getLineNr());
        }

        value = new Value(metadata);
    }

    return value;
}
项目:lams    文件:Jackson2ObjectMapperFactoryBean.java   
private void configureFeature(Object feature, boolean enabled) {
    if (feature instanceof JsonParser.Feature) {
        this.objectMapper.configure((JsonParser.Feature) feature, enabled);
    }
    else if (feature instanceof JsonGenerator.Feature) {
        this.objectMapper.configure((JsonGenerator.Feature) feature, enabled);
    }
    else if (feature instanceof SerializationFeature) {
        this.objectMapper.configure((SerializationFeature) feature, enabled);
    }
    else if (feature instanceof DeserializationFeature) {
        this.objectMapper.configure((DeserializationFeature) feature, enabled);
    }
    else if (feature instanceof MapperFeature) {
        this.objectMapper.configure((MapperFeature) feature, enabled);
    }
    else {
        throw new FatalBeanException("Unknown feature class: " + feature.getClass().getName());
    }
}
项目:jigsaw-payment    文件:JsonJacksonFormat.java   
/**
 * Parse a text-format message from {@code input} and merge the contents into {@code builder}.
 * Extensions will be recognized if they are registered in {@code extensionRegistry}.
 * @throws IOException
 */
public void merge(JsonParser parser,
                         ExtensionRegistry extensionRegistry,
                         Message.Builder builder) throws IOException {

    JsonToken token = parser.nextToken();
    if (token.equals(JsonToken.START_OBJECT)) {
        token = parser.nextToken();
    }
    while (token != null && !token.equals(JsonToken.END_OBJECT)) {
        mergeField(parser, extensionRegistry, builder);
        token = parser.nextToken();
    }

    // Test to make sure the tokenizer has reached the end of the stream.
    if (parser.nextToken() != null) {
        throw new RuntimeException("Expecting the end of the stream, but there seems to be more data!  Check the input for a valid JSON format.");
    }
}
项目:GitHub    文件:NonPrivateFieldsAndAccessorsFieldDetectionPolicyModel$$JsonObjectMapper.java   
@Override
public NonPrivateFieldsAndAccessorsFieldDetectionPolicyModel parse(JsonParser jsonParser) throws IOException {
    NonPrivateFieldsAndAccessorsFieldDetectionPolicyModel instance = new NonPrivateFieldsAndAccessorsFieldDetectionPolicyModel();
    if (jsonParser.getCurrentToken() == null) {
        jsonParser.nextToken();
    }
    if (jsonParser.getCurrentToken() != JsonToken.START_OBJECT) {
        jsonParser.skipChildren();
        return null;
    }
    while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
        String fieldName = jsonParser.getCurrentName();
        jsonParser.nextToken();
        parseField(instance, fieldName, jsonParser);
        jsonParser.skipChildren();
    }
    return instance;
}
项目:GitHub    文件:ParentModel$$JsonObjectMapper.java   
@Override
public ParentModel parse(JsonParser jsonParser) throws IOException {
    ParentModel instance = new ParentModel();
    if (jsonParser.getCurrentToken() == null) {
        jsonParser.nextToken();
    }
    if (jsonParser.getCurrentToken() != JsonToken.START_OBJECT) {
        jsonParser.skipChildren();
        return null;
    }
    while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
        String fieldName = jsonParser.getCurrentName();
        jsonParser.nextToken();
        parseField(instance, fieldName, jsonParser);
        jsonParser.skipChildren();
    }
    return instance;
}
项目:QDrill    文件:JacksonHelper.java   
public static Object getValueFromFieldType(JsonParser parser, MinorType fieldType) throws IOException {
  switch (fieldType) {
    case BIGINT:
      return parser.getLongValue();
    case VARCHAR:
      return parser.getValueAsString();
    case FLOAT4:
      return parser.getFloatValue();
    case BIT:
      return parser.getBooleanValue();
    case LATE:
    case NULL:
      return null;
    default:
      throw new RuntimeException("Unexpected Field type to return value: " + fieldType.toString());
  }
}
项目:optashift-employee-rostering    文件:LocalDateTimeDeserializer.java   
@Override
public LocalDateTime deserialize(JsonParser parser, DeserializationContext context) throws IOException
{
    if (parser.hasTokenId(JsonTokenId.ID_STRING)) {
        String string = parser.getText().trim();
        if (string.length() == 0) {
            return null;
        }

        try {
            return LocalDateTime.parse(string, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
        } catch (DateTimeException e) {
            throw new IOException(e);
        }
    }
    if (parser.hasTokenId(JsonTokenId.ID_EMBEDDED_OBJECT)) {
        return (LocalDateTime) parser.getEmbeddedObject();
    }
    throw context.wrongTokenException(parser, JsonToken.VALUE_STRING, "Expected string.");
}
项目:GitHub    文件:PrivateFieldModel$$JsonObjectMapper.java   
@Override
public PrivateFieldModel parse(JsonParser jsonParser) throws IOException {
    PrivateFieldModel instance = new PrivateFieldModel();
    if (jsonParser.getCurrentToken() == null) {
        jsonParser.nextToken();
    }
    if (jsonParser.getCurrentToken() != JsonToken.START_OBJECT) {
        jsonParser.skipChildren();
        return null;
    }
    while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
        String fieldName = jsonParser.getCurrentName();
        jsonParser.nextToken();
        parseField(instance, fieldName, jsonParser);
        jsonParser.skipChildren();
    }
    return instance;
}
项目:wamp2spring    文件:UnsubscribedMessage.java   
public static UnsubscribedMessage deserialize(JsonParser jp) throws IOException {
    jp.nextToken();
    long request = jp.getLongValue();

    Long subscriptionId = null;
    String reason = null;

    JsonToken token = jp.nextToken();
    if (token == JsonToken.START_OBJECT) {
        Map<String, Object> details = ParserUtil.readObject(jp);
        reason = (String) details.get("reason");

        Object subscriptionObj = details.get("subscription");
        if (subscriptionObj != null) {
            subscriptionId = ((Number) subscriptionObj).longValue();
        }
    }

    return new UnsubscribedMessage(request, subscriptionId, reason);
}
项目:nan    文件:FDateJsonDeserializer.java   
@Override
public Date deserialize(JsonParser gen, DeserializationContext ctxt) throws IOException, JsonProcessingException {
    String date = gen.getText();

    if (StringUtils.isEmpty(date)) {
        return null;
    }

    if (StringUtils.isNumeric(date)) {
        return new Date(Long.valueOf(date));
    }
    try {
        DateTime dt = fmt.parseDateTime(date);
        return dt.toDate();
    } catch (Exception e) {
        throw new IOException(e);
    }
}
项目:pyplyn    文件:RawJsonCollectionDeserializer.java   
private Collection<Object> deserializeWithRetry(JsonParser p, DeserializationContext ctxt, JavaType contentType) throws IOException {
    final CollectionType collectionType = ctxt.getTypeFactory().constructCollectionType(Collection.class, contentType);

    try {
        return p.getCodec().readValue(p, collectionType);

    } catch (JsonMappingException e) {
        // attempt to read the value as string
        final String escapedString = p.getValueAsString();

        // stop here if value could not be read
        if (isNull(escapedString)) {
            throw ctxt.instantiationException(Collection.class, "Read null value when attempting to deserialize " + collectionType.toString());
        }

        // un-escape double quotes
        String unescapedString = escapedString.replaceAll("\"", "\"");

        // and attempt to parse again
        return new ObjectMapper().readValue(unescapedString, collectionType);
    }
}
项目:powsybl-core    文件:PostContingencyResultDeserializer.java   
@Override
public PostContingencyResult deserialize(JsonParser parser, DeserializationContext deserializationContext) throws IOException {
    Contingency contingency = null;
    LimitViolationsResult limitViolationsResult = null;

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        switch (parser.getCurrentName()) {
            case "contingency":
                parser.nextToken();
                contingency = parser.readValueAs(Contingency.class);
                break;

            case "limitViolationsResult":
                parser.nextToken();
                limitViolationsResult = parser.readValueAs(LimitViolationsResult.class);
                break;

            default:
                throw new AssertionError("Unexpected field: " + parser.getCurrentName());
        }
    }

    return new PostContingencyResult(contingency, limitViolationsResult);
}
项目:kowalski    文件:SolrQueryDeserializer.java   
@Override
public SolrQuery deserialize(JsonParser parser, DeserializationContext context)
        throws IOException, JsonProcessingException {
    JsonNode node = parser.getCodec().readTree(parser);
    String serialization = node.get(SERIALIZATION).textValue();
    return SerializationUtils.deserialize(Base64.decodeBase64(serialization.getBytes()));
}
项目:SugarOnRest    文件:CustomDateDeserializer.java   
/**
 *  Deserialize date.
 *
 * @param jsonparser
 * @param context
 * @return
 * @throws IOException
 * @throws JsonProcessingException
 */
@Override
public Date deserialize(JsonParser jsonparser, DeserializationContext context)
        throws IOException, JsonProcessingException {

    String date = jsonparser.getText();
    try {
        return formatter.parse(date);
    } catch (Exception e) {
    }

    return null;
}
项目:echo    文件:AppManager.java   
public boolean stopDAG() {

    ObjectMapper mapper = new ObjectMapper();
       mapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);
       deployer.stopDag();
       // TODO remove the entry from the RD
       return true;
}
项目:GitHub    文件:DateTypeConverter.java   
@Override
public Date parse(JsonParser jsonParser) throws IOException {
    String dateString = jsonParser.getValueAsString(null);
    if (dateString != null) {
        try {
            return mDateFormat.get().parse(dateString);
        } catch (ParseException e) {
            return null;
        }
    } else {
        return null;
    }
}
项目:ibm-cos-sdk-java    文件:SimpleTypeCborUnmarshallers.java   
public BigDecimal unmarshall(JsonUnmarshallerContext unmarshallerContext) throws Exception {
    JsonParser parser = unmarshallerContext.getJsonParser();
    Unmarshaller<BigInteger, JsonUnmarshallerContext> bigIntegerUnmarshaller = unmarshallerContext.getUnmarshaller(BigInteger.class);

    JsonToken current = parser.getCurrentToken();
    if (current != JsonToken.START_ARRAY) {
        throw new SdkClientException("Invalid BigDecimal Format.");
    }
    parser.nextToken();
    int exponent = parser.getIntValue();
    parser.nextToken();
    BigInteger mantissa = bigIntegerUnmarshaller.unmarshall(unmarshallerContext);
    return new BigDecimal(mantissa, exponent);
}
项目:powsybl-core    文件:TimeSeriesJsonDeserializer.java   
@Override
public TimeSeries deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) {
    List<TimeSeries> timeSeriesList = TimeSeries.parseJson(jsonParser, true);
    if (timeSeriesList.size() != 1) {
        throw new TimeSeriesException("Time series JSON deserialization error");
    }
    return timeSeriesList.get(0);
}
项目:act-platform    文件:AbstractRequestTest.java   
@BeforeClass
public static void setUp() {
  // Initialize object mapper for testing.
  mapper = new ObjectMapper();
  // With this configuration we save a lot of quotes and escaping when creating JSON strings.
  mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
  mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
  // Initialize validator for testing including custom mappings.
  validator = Validation.byDefaultProvider()
          .configure()
          .addMapping(AbstractRequestTest.class.getClassLoader().getResourceAsStream(VALIDATION_MAPPINGS))
          .buildValidatorFactory()
          .getValidator();
}
项目:aws-sdk-java-v2    文件:Choice.java   
@Override
public Choice.Builder deserialize(JsonParser jsonParser,
                                  DeserializationContext deserializationContext) throws IOException {
    final JsonNode node = jsonParser.getCodec().readTree(jsonParser);
    return Choice.builder()
                 .nextStateName(node.get(PropertyNames.NEXT).asText())
                 .condition(conditionDeserializer.deserializeCondition(node));
}
项目:OperatieBRP    文件:DienstbundelDeserializer.java   
@Override
public final Dienstbundel deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException {
    final ObjectCodec oc = jp.getCodec();
    final JsonNode node = oc.readTree(jp);

    final Leveringsautorisatie leveringsautorisatie =
            entityManager.getReference(Leveringsautorisatie.class, JsonUtils.getAsInteger(node, DienstbundelModule.LEVERINGSAUTORISATIE));

    final Dienstbundel dienstbundel = new Dienstbundel(leveringsautorisatie);
    dienstbundel.setLeveringsautorisatie(leveringsautorisatie);
    dienstbundel.setId(JsonUtils.getAsInteger(node, DienstbundelModule.ID));
    dienstbundel.setNaam(JsonUtils.getAsString(node, DienstbundelModule.NAAM));
    dienstbundel.setDatumIngang(JsonUtils.getAsInteger(node, DienstbundelModule.DATUM_INGANG));
    dienstbundel.setDatumEinde(JsonUtils.getAsInteger(node, DienstbundelModule.DATUM_EINDE));
    dienstbundel.setNaderePopulatiebeperking(JsonUtils.getAsString(node, DienstbundelModule.NADERE_POPULATIE_BEPERKING));
    dienstbundel.setIndicatieNaderePopulatiebeperkingVolledigGeconverteerd(
        JsonUtils.getAsBoolean(
            node,
            DienstbundelModule.INDICATIE_NADERE_POPULATIE_BEPERKING_GECONVERTEERD,
            DienstbundelModule.WAARDE_NEE,
            Boolean.FALSE,
            null));
    dienstbundel.setToelichting(JsonUtils.getAsString(node, DienstbundelModule.TOELICHTING));
    dienstbundel.setIndicatieGeblokkeerd(
        JsonUtils.getAsBoolean(node, DienstbundelModule.INDICATIE_GEBLOKKEERD, DienstbundelModule.WAARDE_JA, Boolean.TRUE, null));

    return dienstbundel;
}
项目:CryptoPayAPI    文件:AddressOverviewDeserializer.java   
@Override
public AddressOverview deserialize(JsonParser parser, DeserializationContext context)   
        throws IOException, JsonProcessingException {
    List<Object> propertyList = context.readValue(parser, context.getTypeFactory()
            .constructCollectionType(ArrayList.class, Object.class));
    return toAddressOverview(propertyList);
}
项目:verify-service-provider    文件:PrivateKeyDeserializer.java   
@Override
public PrivateKey deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException {
    jsonParser.setCodec(OBJECT_MAPPER);
    JsonNode node = jsonParser.getCodec().readTree(jsonParser);

    try {
        return createPrivateKey(Base64.getDecoder().decode(node.asText()));
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
项目:OperatieBRP    文件:LeveringsautorisatieDeserializer.java   
@Override
public final Leveringsautorisatie deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException {
    final ObjectCodec oc = jp.getCodec();
    final JsonNode node = oc.readTree(jp);

    final Stelsel stelsel = EnumUtils.getAsEnum(Stelsel.class, JsonUtils.getAsInteger(node, LeveringsautorisatieModule.STELSEL));
    final Boolean indicatieModelautorisatie =
            JsonUtils.getAsBoolean(
                node,
                LeveringsautorisatieModule.INDICATIE_MODEL_AUTORISATIE,
                LeveringsautorisatieModule.WAARDE_JA,
                Boolean.TRUE,
                Boolean.FALSE);
    final Leveringsautorisatie leveringsautorisatie = new Leveringsautorisatie(stelsel, indicatieModelautorisatie);
    leveringsautorisatie.setId(JsonUtils.getAsInteger(node, LeveringsautorisatieModule.ID));
    leveringsautorisatie.setNaam(JsonUtils.getAsString(node, LeveringsautorisatieModule.NAAM));
    leveringsautorisatie.setProtocolleringsniveau(
        EnumUtils.getAsEnum(Protocolleringsniveau.class, JsonUtils.getAsInteger(node, LeveringsautorisatieModule.PROTOCOLLERINGSNIVEAU)));
    leveringsautorisatie.setIndicatieAliasSoortAdministratieveHandelingLeveren(
        JsonUtils.getAsBoolean(
            node,
            LeveringsautorisatieModule.INDICATIE_ALIAS_LEVEREN,
            LeveringsautorisatieModule.WAARDE_JA,
            Boolean.TRUE,
            Boolean.FALSE));
    leveringsautorisatie.setDatumIngang(JsonUtils.getAsInteger(node, LeveringsautorisatieModule.DATUM_INGANG));
    leveringsautorisatie.setDatumEinde(JsonUtils.getAsInteger(node, LeveringsautorisatieModule.DATUM_EINDE));
    leveringsautorisatie.setPopulatiebeperking(JsonUtils.getAsString(node, LeveringsautorisatieModule.POPULATIE_BEPERKING));
    leveringsautorisatie.setToelichting(JsonUtils.getAsString(node, LeveringsautorisatieModule.TOELICHTING));
    leveringsautorisatie.setIndicatieGeblokkeerd(
        JsonUtils.getAsBoolean(node, LeveringsautorisatieModule.INDICATIE_GEBLOKKEERD, LeveringsautorisatieModule.WAARDE_JA, Boolean.TRUE, null));

    return leveringsautorisatie;
}
项目:gitplex-mit    文件:ManyToOneDeserializer.java   
@SuppressWarnings("unchecked")
@Override
   public AbstractEntity deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException,
           JsonProcessingException {
       Long entityId = jp.getLongValue();
       Class<? extends AbstractEntity> valueClass = (Class<? extends AbstractEntity>) handledType();
       return (AbstractEntity) AppLoader.getInstance(Dao.class).load(valueClass, entityId);
   }
项目:GitHub    文件:AsyncMissingValuesInObjectTest.java   
public AsyncMissingValuesInObjectTest(Collection<JsonParser.Feature> features) {
    this.factory = new JsonFactory();
    this.features = new HashSet<JsonParser.Feature>(features);

    for (JsonParser.Feature feature : features) {
        factory.enable(feature);
    }
}
项目:taboola-cronyx    文件:TriggerDefinitionJsonDeserializer.java   
@Override
public TriggerDefinition deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
    JsonNode root = p.getCodec().readTree(p);
    JsonNode triggerKey = root.get("triggerKey");
    JsonNode description = root.get("description");
    JsonNode jobKey = root.get("jobKey");
    JsonNode triggerData = root.get("triggerData");
    JsonNode misfireInstruction = root.get("misfireInstruction");
    JsonNode cron = root.get("cronExpression");

    if (triggerKey == null || jobKey == null) {
        throw new IOException("JSON is missing a triggerKey and jobKey");
    }

    if (cron == null) {
        return TriggerDefinitionBuilder.immediate()
                                       .identifiedAs(mapper.convertValue(triggerKey, NameAndGroup.class))
                                       .forJob(mapper.convertValue(jobKey, NameAndGroup.class))
                                       .withDescription(description != null ? description.textValue() : null)
                                       .withData(triggerData != null ? mapper.convertValue(triggerData, Map.class) : emptyMap())
                                       .withMisfireInstruction(misfireInstruction != null ? mapper.convertValue(misfireInstruction, Immediate.MisfireInstruction.class) : null)
                                       .build();
    } else {
        return TriggerDefinitionBuilder.cron()
                                .identifiedAs(mapper.convertValue(triggerKey, NameAndGroup.class))
                                .forJob(mapper.convertValue(jobKey, NameAndGroup.class))
                                .withCronExpression(cron.textValue())
                                .withDescription(description != null ? description.textValue() : null)
                                .withData(triggerData != null ? mapper.convertValue(triggerData, Map.class) : emptyMap())
                                .withMisfireInstruction(misfireInstruction != null ? mapper.convertValue(misfireInstruction, Cron.MisfireInstruction.class) : null)
                                .build();
    }
}
项目:OperatieBRP    文件:VrijBerichtDeserializer.java   
@Override
public VrijBericht deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException {
    final ObjectCodec oc = jp.getCodec();
    final JsonNode node = oc.readTree(jp);

    final Integer id = JsonUtils.getAsInteger(node, "id");
    VrijBericht vrijBericht;
    if (id != null) {
        // Bij een bestaand vrij bericht alleen indicatieGelezen aanpassen.
        vrijBericht = entityManager.find(VrijBericht.class, id);
        final String ongelezen = JsonUtils.getAsString(node, "ongelezen");
        boolean gelezen;
        switch (ongelezen) {
            case "Nee":
                gelezen = true;
                break;
            case "Ja":
            default:
                gelezen = false;
        }
        vrijBericht.setIndicatieGelezen(gelezen);
    } else {
        final Short soortvrijberId = JsonUtils.getAsShort(node, "soortvrijber");
        final String data = JsonUtils.getAsString(node, "data");
        final SoortVrijBericht soortVrijBericht = entityManager.getReference(SoortVrijBericht.class, soortvrijberId);
        vrijBericht =
                new VrijBericht(SoortBerichtVrijBericht.STUUR_VRIJ_BERICHT, soortVrijBericht,
                        Timestamp.from(DatumUtil.nuAlsZonedDateTimeInNederland().toInstant()), data, null);
        final ArrayNode partijen = (ArrayNode) node.get("partijen");
        for (JsonNode partijNode : partijen) {
            final Short partijId = Short.valueOf(partijNode.asText());
            final VrijBerichtPartij vrijBerichtPartij = new VrijBerichtPartij(vrijBericht, partijRepository.findOne(partijId));
            vrijBericht.getVrijBerichtPartijen().add(vrijBerichtPartij);
        }
    }
    return vrijBericht;
}
项目:klask-io    文件:JSR310LocalDateDeserializer.java   
@Override
public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    switch(parser.getCurrentToken()) {
        case START_ARRAY:
            if(parser.nextToken() == JsonToken.END_ARRAY) {
                return null;
            }
            int year = parser.getIntValue();

            parser.nextToken();
            int month = parser.getIntValue();

            parser.nextToken();
            int day = parser.getIntValue();

            if(parser.nextToken() != JsonToken.END_ARRAY) {
                throw context.wrongTokenException(parser, JsonToken.END_ARRAY, "Expected array to end.");
            }
            return LocalDate.of(year, month, day);

        case VALUE_STRING:
            String string = parser.getText().trim();
            if(string.length() == 0) {
                return null;
            }
            return LocalDate.parse(string, ISO_DATE_OPTIONAL_TIME);
        default:
            throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string.");
    }
}
项目:graphium    文件:GenericQueuingJacksonSegmentInputFormat.java   
@Override
public void deserialize(InputStream stream, BlockingQueue<T> outputQueue)
        throws WaySegmentDeserializationException {
    try {
        JsonParser jp = jsonFactory.createParser(stream);       
        JsonToken token = jp.nextToken();
        long count = 0;

        ISegmentAdapter<IBaseSegmentDTO, T> adapter = null;
        while(!jp.isClosed()){
            token = jp.nextToken();
            // extract type of segments. its encoded as the name of the array field holding the segments
            if (jp.getCurrentToken() == JsonToken.FIELD_NAME) {             
                String segmentType = jp.getCurrentName();
                adapter = this.getAndRegisterDeserializers(segmentType);
            }
            else if(token != null && token != JsonToken.END_ARRAY && token != JsonToken.END_OBJECT) {
                enqueue(outputQueue, processSegment(jp, adapter));
                count++;
            }
        }

        log.info("parsed and enqueued: " + count + " segments");
       } catch (Exception e) {
           throw new WaySegmentDeserializationException(e.getMessage(),e);
       }        
}
项目:dremio-oss    文件:WriteHolders.java   
private void write(BitWriter writer, JsonToken token, JsonParser parser) throws IOException {
  // TODO JASON - finish other cases
  if (token == JsonToken.VALUE_NUMBER_INT) {
    writer.writeBit(parser.getIntValue() == 1 ? 1 : 0);
  } else if (token == JsonToken.VALUE_TRUE || token == JsonToken.VALUE_FALSE){
    writer.writeBit(parser.getBooleanValue() ? 1 : 0);
  } else if (token == JsonToken.VALUE_STRING) {
    writer.writeBit(ElasticsearchJsonReader.parseElasticBoolean(parser.getValueAsString()) ? 1 : 0);
  } else {
    throw UserException.dataReadError()
        .message("While reading from elasticsearch, unexpected data type in a boolean column: " + token).build(logger);
  }

}
项目:GitHub    文件:ValueConversionsTest.java   
private void _testAsDouble(int mode) throws Exception
{
    final String input = "[ 1, -3, 4.98, true, false, null, \"-17.25\", \"foo\" ]";
    JsonParser p = createParser(mode, input);

    assertToken(JsonToken.START_ARRAY, p.nextToken());
    assertEquals(0.0, p.getValueAsDouble());
    assertEquals(9.0, p.getValueAsDouble(9.0));

    assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
    assertEquals(1., p.getValueAsDouble());
    assertEquals(1., p.getValueAsDouble(-99.0));
    assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
    assertEquals(-3., p.getValueAsDouble());
    assertToken(JsonToken.VALUE_NUMBER_FLOAT, p.nextToken());
    assertEquals(4.98, p.getValueAsDouble());
    assertEquals(4.98, p.getValueAsDouble(12.5));
    assertToken(JsonToken.VALUE_TRUE, p.nextToken());
    assertEquals(1.0, p.getValueAsDouble());
    assertToken(JsonToken.VALUE_FALSE, p.nextToken());
    assertEquals(0.0, p.getValueAsDouble());
    assertToken(JsonToken.VALUE_NULL, p.nextToken());
    assertEquals(0.0, p.getValueAsDouble());
    assertEquals(0.0, p.getValueAsDouble(27.8));
    assertToken(JsonToken.VALUE_STRING, p.nextToken());
    assertEquals(-17.25, p.getValueAsDouble());
    assertEquals(-17.25, p.getValueAsDouble(1.9));
    assertToken(JsonToken.VALUE_STRING, p.nextToken());
    assertEquals(0.0, p.getValueAsDouble());
    assertEquals(1.25, p.getValueAsDouble(1.25));

    assertToken(JsonToken.END_ARRAY, p.nextToken());
    assertEquals(0.0, p.getValueAsDouble());
    assertEquals(7.5, p.getValueAsDouble(7.5));

    p.close();
}
项目:ItemStore    文件:ItemJson.java   
@Override
protected Item deserializeObject(JsonParser jsonParser, DeserializationContext context, ObjectCodec codec, JsonNode tree) throws IOException {
    System.out.println("deserializeObject");
    String description = tree.get("description").asText();
    String location = tree.get("location").asText();
    return new Item(1l,description, location, null);
}
项目:iextrading4j    文件:SystemEventTypeDeserializerTest.java   
@Test
public void shouldReturnUnknownTypeIfValueIsNull() throws IOException {
    final JsonParser parserMock = mock(JsonParser.class);
    final DeserializationContext contextMock = mock(DeserializationContext.class);

    when(parserMock.getValueAsString()).thenReturn(null);

    final SystemEventType result = systemEventTypeDeserializer.deserialize(parserMock, contextMock);

    assertThat(result).isEqualTo(SystemEventType.UNKNOWN);
}