Search in sources :

Example 1 with Event

use of jakarta.json.stream.JsonParser.Event in project eclipselink by eclipse-ee4j.

the class JsonUnmarshalBenchmark method testJsonParser.

@Benchmark
public void testJsonParser(Blackhole bh) throws Exception {
    InputStream inputStream = null;
    try {
        inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(INPUT_JSON);
        JsonParser jr = Json.createParser(inputStream);
        Event event = null;
        while (jr.hasNext()) {
            event = jr.next();
            bh.consume(event);
        }
    } catch (Exception e) {
        e.printStackTrace();
        throw e;
    } finally {
        if (null != inputStream) {
            inputStream.close();
        }
    }
}
Also used : InputStream(java.io.InputStream) Event(jakarta.json.stream.JsonParser.Event) JsonParser(jakarta.json.stream.JsonParser) Benchmark(org.openjdk.jmh.annotations.Benchmark)

Example 2 with Event

use of jakarta.json.stream.JsonParser.Event in project opensearch-java by opensearch-project.

the class JsonpUtils method expectNextEvent.

/**
 * Advances the parser to the next event and checks that this even is the expected one.
 *
 * @return the expected event
 *
 * @throws jakarta.json.JsonException if an i/o error occurs (IOException would be cause of JsonException)
 * @throws JsonParsingException if the event is not the expected one, or if the parser encounters invalid
 *         JSON when advancing to next state.
 * @throws java.util.NoSuchElementException if there are no more parsing states.
 */
public static JsonParser.Event expectNextEvent(JsonParser parser, JsonParser.Event expected) {
    JsonParser.Event event = parser.next();
    expectEvent(parser, expected, event);
    return event;
}
Also used : Event(jakarta.json.stream.JsonParser.Event) JsonParser(jakarta.json.stream.JsonParser)

Example 3 with Event

use of jakarta.json.stream.JsonParser.Event in project opensearch-java by opensearch-project.

the class UnionDeserializer method deserialize.

@Override
public Union deserialize(JsonParser parser, JsonpMapper mapper) {
    Event event = parser.next();
    JsonpUtils.ensureAccepts(this, parser, event);
    return deserialize(parser, mapper, event);
}
Also used : Event(jakarta.json.stream.JsonParser.Event)

Example 4 with Event

use of jakarta.json.stream.JsonParser.Event in project elasticsearch-java by elastic.

the class JsonpDeserializer method deserialize.

/**
 * Deserialize a value. The value starts at the next state in the JSON stream.
 * <p>
 * Default implementation delegates to {@link #deserialize(JsonParser, JsonpMapper, Event)}
 * after having checked that the next event is part of the accepted events.
 * <p>
 * If the next event is {@link Event#VALUE_NULL}, {@code null} is returned unless {@link Event#VALUE_NULL}
 * is part of the deserializer's accepted events.
 *
 * @param parser the JSON parser
 * @param mapper the JSON-P mapper
 * @return the parsed value or null
 */
default V deserialize(JsonParser parser, JsonpMapper mapper) {
    JsonParser.Event event = parser.next();
    // JSON null: return null unless the deserializer can handle it
    if (event == JsonParser.Event.VALUE_NULL && !accepts(Event.VALUE_NULL)) {
        return null;
    }
    JsonpUtils.ensureAccepts(this, parser, event);
    return deserialize(parser, mapper, event);
}
Also used : Event(jakarta.json.stream.JsonParser.Event) JsonParser(jakarta.json.stream.JsonParser)

Example 5 with Event

use of jakarta.json.stream.JsonParser.Event in project yasson by eclipse-ee4j.

the class DeserializationModelCreator method typeProcessor.

private ModelDeserializer<JsonParser> typeProcessor(LinkedList<Type> chain, Type type, Customization customization, ModelDeserializer<Object> memberDeserializer, Set<Event> events) {
    Type resolved = ReflectionUtils.resolveType(chain, type);
    Class<?> rawType = ReflectionUtils.getRawType(resolved);
    Optional<DeserializerBinding<?>> deserializerBinding = userDeserializer(resolved, (ComponentBoundCustomization) customization);
    if (deserializerBinding.isPresent()) {
        // customization);
        return new UserDefinedDeserializer(deserializerBinding.get().getJsonbDeserializer(), memberDeserializer, resolved, customization);
    }
    Optional<AdapterBinding> adapterBinding = adapterBinding(resolved, (ComponentBoundCustomization) customization);
    if (adapterBinding.isPresent()) {
        AdapterBinding adapter = adapterBinding.get();
        ModelDeserializer<JsonParser> typeDeserializer = typeDeserializer(ReflectionUtils.getRawType(adapter.getToType()), customization, JustReturn.instance(), events);
        if (typeDeserializer == null) {
            typeDeserializer = deserializerChain(adapter.getToType());
        }
        ModelDeserializer<JsonParser> targetAdapterModel = typeDeserializer;
        AdapterDeserializer adapterDeserializer = new AdapterDeserializer(adapter, memberDeserializer);
        return (parser, context) -> {
            DeserializationContextImpl newContext = new DeserializationContextImpl(context);
            Object fromJson = targetAdapterModel.deserialize(parser, newContext);
            return adapterDeserializer.deserialize(fromJson, context);
        };
    }
    ModelDeserializer<JsonParser> typeDeserializer = typeDeserializer(rawType, customization, memberDeserializer, events);
    if (typeDeserializer == null) {
        Class<?> implClass = resolveImplClass(rawType, customization);
        return createNewChain(chain, memberDeserializer, implClass, resolved, customization);
    }
    return typeDeserializer;
}
Also used : GenericArrayType(java.lang.reflect.GenericArrayType) Arrays(java.util.Arrays) OptionalDouble(java.util.OptionalDouble) JsonbDateFormatter(org.eclipse.yasson.internal.JsonbDateFormatter) HashMap(java.util.HashMap) MessageKeys(org.eclipse.yasson.internal.properties.MessageKeys) ClassCustomization(org.eclipse.yasson.internal.model.customization.ClassCustomization) OptionalInt(java.util.OptionalInt) Function(java.util.function.Function) PropertyCustomization(org.eclipse.yasson.internal.model.customization.PropertyCustomization) HashSet(java.util.HashSet) LinkedHashMap(java.util.LinkedHashMap) OptionalLong(java.util.OptionalLong) Map(java.util.Map) Customization(org.eclipse.yasson.internal.model.customization.Customization) JsonbException(jakarta.json.bind.JsonbException) JsonbNumberFormatter(org.eclipse.yasson.internal.JsonbNumberFormatter) AdapterBinding(org.eclipse.yasson.internal.components.AdapterBinding) DeserializerBinding(org.eclipse.yasson.internal.components.DeserializerBinding) LinkedList(java.util.LinkedList) ReflectionUtils(org.eclipse.yasson.internal.ReflectionUtils) JsonParser(jakarta.json.stream.JsonParser) ClassModel(org.eclipse.yasson.internal.model.ClassModel) PropertyModel(org.eclipse.yasson.internal.model.PropertyModel) Collection(java.util.Collection) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) TypeDeserializers(org.eclipse.yasson.internal.deserializer.types.TypeDeserializers) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) Event(jakarta.json.stream.JsonParser.Event) List(java.util.List) ParameterizedType(java.lang.reflect.ParameterizedType) Type(java.lang.reflect.Type) JsonbConfigProperties(org.eclipse.yasson.internal.JsonbConfigProperties) CreatorModel(org.eclipse.yasson.internal.model.CreatorModel) DeserializationContextImpl(org.eclipse.yasson.internal.DeserializationContextImpl) JsonbCreator(org.eclipse.yasson.internal.model.JsonbCreator) ComponentBoundCustomization(org.eclipse.yasson.internal.model.customization.ComponentBoundCustomization) TypeInheritanceConfiguration(org.eclipse.yasson.internal.model.customization.TypeInheritanceConfiguration) Messages(org.eclipse.yasson.internal.properties.Messages) Optional(java.util.Optional) JsonbContext(org.eclipse.yasson.internal.JsonbContext) Collections(java.util.Collections) PropertyNamingStrategy(jakarta.json.bind.config.PropertyNamingStrategy) PROPERTY_NAMING_STRATEGY(jakarta.json.bind.JsonbConfig.PROPERTY_NAMING_STRATEGY) BinaryDataStrategy(jakarta.json.bind.config.BinaryDataStrategy) DeserializationContextImpl(org.eclipse.yasson.internal.DeserializationContextImpl) GenericArrayType(java.lang.reflect.GenericArrayType) ParameterizedType(java.lang.reflect.ParameterizedType) Type(java.lang.reflect.Type) DeserializerBinding(org.eclipse.yasson.internal.components.DeserializerBinding) AdapterBinding(org.eclipse.yasson.internal.components.AdapterBinding) JsonParser(jakarta.json.stream.JsonParser)

Aggregations

Event (jakarta.json.stream.JsonParser.Event)11 JsonParser (jakarta.json.stream.JsonParser)8 JsonbException (jakarta.json.bind.JsonbException)2 HashMap (java.util.HashMap)2 JsonObject (jakarta.json.JsonObject)1 PROPERTY_NAMING_STRATEGY (jakarta.json.bind.JsonbConfig.PROPERTY_NAMING_STRATEGY)1 BinaryDataStrategy (jakarta.json.bind.config.BinaryDataStrategy)1 PropertyNamingStrategy (jakarta.json.bind.config.PropertyNamingStrategy)1 InputStream (java.io.InputStream)1 StringReader (java.io.StringReader)1 GenericArrayType (java.lang.reflect.GenericArrayType)1 ParameterizedType (java.lang.reflect.ParameterizedType)1 Type (java.lang.reflect.Type)1 BigDecimal (java.math.BigDecimal)1 Arrays (java.util.Arrays)1 Collection (java.util.Collection)1 Collections (java.util.Collections)1 HashSet (java.util.HashSet)1 LinkedHashMap (java.util.LinkedHashMap)1 LinkedList (java.util.LinkedList)1