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();
}
}
}
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;
}
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);
}
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);
}
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;
}
Aggregations