DoubleDeserializer<P extends Parser, C extends DeserializationContext<Parser>> constructor

const DoubleDeserializer<P extends Parser, C extends DeserializationContext<Parser>>()

Creates a new DoubleDeserializer.

Deserializes JSON numeric values into Dart double instances.

The DoubleDeserializer converts JSON numbers and numeric-like strings into Dart double values, applying relaxed and safe coercion rules:

  • Returns the value directly if it is already a double.
  • Converts any num into a double using .toDouble().
  • Attempts double.tryParse() for string values.
  • Returns null when the JSON value is null.

Core Responsibilities

  • Provide safe and predictable coercion of JSON numeric values to double.
  • Handle integers, doubles, numeric strings, and nulls.
  • Integrate seamlessly with JetLeaf's deserialization strategy.

Example

final deserializer = DoubleDeserializer();

final parser = JsonParser('3.14');
final result = deserializer.deserialize(parser, context, Class.forType(double));
// result == 3.14

Notes

  • Non-numeric strings result in null via double.tryParse.
  • Avoids throwing format exceptions unless upstream parser errors occur.

Implementation

const DoubleDeserializer();